function GetCDIcon(Drive: Char): TIcon;
var
ico: TIcon;
ini: TIniFile;
s, p: string;
i, j: Integer;
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);
//Icon aus einer Resource laden
//Load the icon from a Win32 resource
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;
|