es gibt mehrere Variante an die Icons zu kommen. Zum einen ExtractAssociatedIcon zum anderen
gibt es die Möglichkeit eine Imagelist zu nehmen (fImgList)
Delphi-Quellcode:
//zum Initialisieren (zur einmal ausführen)
var LSFI: TSHFileInfo;
[...]
LHandle := SHGetFileInfo('', 0, LSFI, SizeOf(LSFI), SHGFI_SYSICONINDEX or SHGFI_OPENICON);
if LHandle <> 0 then
begin
fImgList.Handle := LHandle;
fImgList.ShareImages := True;
end;
[...]
//zum Icon holen
var LInfo: TSHFileInfo;
[...]
SHGetFileInfo(PChar(LFilename),0,LInfo,SizeOf(TSHFileInfo),SHGFI_SYSIconIndex or SHGFI_TYPENAME);
fImgList.GetBitmap(LInfo.iIcon, fTmpBitmap);
der Quelltext ist ein Auszug aus einem meiner Programme, daher auch die nicht immer ganz eindeutigen VariablenNamen