Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
Delphi 7 Professional
|
Re: Icon aus beliebiger Datei extrahieren (z.B. *.lnk)
20. Okt 2005, 16:08
Also bei exe funzt dieser code bei anderen sachen hab ichs noch net getestet und kann ich hier leider auch nicht versuchs einfach...
Delphi-Quellcode:
function GetDefaultIcon(Filename: Widestring; IconTyp: Cardinal = 2): HIcon;
var
Info: TSHFileInfoW;
Flags: Cardinal;
ext: WideString;
idx: word;
begin
//Result := Ticon.Create;
ext := WideExtractFileExt(Filename);
idx := 0;
if WideFileExists(Filename) then
begin
result := Tnt_ExtractAssociatedIconW(HInstance, PWideChar(Filename), idx);
exit;
end;
{if ext = '.ico' then
begin
result := LoadFromFile(Filename);
exit;
end;}
begin {DW 1.4}
Flags := 0;
case IconTyp of
0: Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES;
1: Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;
2: Flags := SHGFI_ICON or SHGFI_SHELLICONSIZE or SHGFI_USEFILEATTRIBUTES;
end;
Tnt_SHGetFileInfoW(PWideChar(ext), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), Flags);
Result := Info.hIcon;
end;
end;
{TntWiindows.pas}
function Tnt_ExtractAssociatedIconW(hInst: HINST; lpIconPath: PWideChar;
var lpiIcon: Word): HICON;
begin
if Win32PlatformIsUnicode then
Result := ExtractAssociatedIconW{TNT-ALLOW ExtractAssociatedIconW}(hInst, lpIconPath, lpiIcon)
else
Result := ExtractAssociatedIconA{TNT-ALLOW ExtractAssociatedIconA}(hInst,
PAnsiChar(AnsiString(lpIconPath)), lpiIcon)
end;
Florian Gilde
|
|
Zitat
|