hi Jungs, also ich code ein Proggi, indem in einer comboboxex nur CDROM LWs aufgelistet werden.
Bei einem klick auf dieses Lw soll das CD Icon erscheinen, falls vorhanden.
Habe dies so gelößt:
Delphi-Quellcode:
function GetCDIcon(Drive: string): TIcon;
var
ico: TIcon;
ini: TIniFile;
s, p: string;
i, j: Integer;
FileInfo: SHFILEINFO;
begin
//Abbrechen wenn "AutoRun.Inf" nicht existiert.
//Abort if "AutoRun.inf" doesn't exists.
if FileExists(Drive + ':\autorun.inf') = False then Exit;
//"AutoRun.inf" öffnen
//Opens the "AutoRun.inf"
ini := TIniFile.Create(Drive + ':\autorun.inf');
ico := TIcon.Create;
try
//Dateinamen lesen
//Read the filename
s := ini.ReadString('Autorun', 'ICON', '');
//Abbrechen, wenn kein Icon festgelegt wurde
//Abort if there is no icon specified
if s = '' then Exit;
//Icon von Datei laden
//load the icon from a file
if FileExists(s) then ico.LoadFromFile(s);
if FileExists(Drive + ':\' + s) then ico.LoadFromFile(Drive + ':\' + s);
if (FileExists(s) = False) and (FileExists(Drive + ':\' + s) = False) then
begin
for j := (Pos(',', s) + 1) to Length(s) do
begin
p := p + s[j];
end;
i := StrToInt(p);
for j := Length(s) downto (Pos(',', s)) do
Delete(s, j, Length(s));
if FileExists(s) = False then s := Drive + ':\' + s;
ico.Handle := ExtractIcon(hinstance, PChar(s), i);
end;
Result := ico;
finally
ini.Free;
end;
end;
Nur komischerweise merkt sich irgendwie mein Proggi ohne das ich es ihm befohlen habe etc. welche CDLW laufwerke schon mal in benutzung waren mit meinem Prog.
So kommt beim Abfragen wenn keine CD Im Laufwerk ist die standard Windows Fehlermeldung mit "Keine CD im Datenträger Vorhanden" oder so wo dann Abbrechen Wiederholen Weiter steht.
Aber er soll die Funktion doch abbrechen.
Ich hab mal gedebuggt und es liegt eindeutig an diesem code. schon in der zeile wo nach der autorun gesucht wird bricht er ab. Also es kommt die Meldung und wenn ich auf abbrechen klick läuft es ganz normal weiter.
Wenn ne CD drin ist funzt alles so wie es soll.
So nun meine Frage: Woran liegt das ?
Vielen Dank im Voraus.