Einzelnen Beitrag anzeigen

ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#1

SHGetFileInfo und Dateien in der Path-Umgebungsvariable

  Alt 6. Jan 2005, 18:54
Ich verwende folgenden Code um das Icon von Dateien zu ermitteln. Wenn ich den kompletten Pfad zur Anwendung kenne ist es ja auch kein Problem, auch wenn ich bspw. nur '.zip' angebe wird mir das Icon korrekt angezeigt.
Will ich jetzt aber das Icon einer Datei (z.B. taskmgr.exe) ermitteln, schlägt das fehl und ich bekomme nur das Standardicon für Anwendungen angezeigt. Meine Frage ist nun wie ich SHGetFileInfo dazu überreden kann auch die Path-Umgebungsvariable zu durchsuchen/verwenden?

Delphi-Quellcode:
function GetIconFromFile(const szFilename: string;
  fSmall: boolean = false): TIcon;
const
  dwIconFlags : array[boolean]of dword =
    (SHGFI_LARGEICON,SHGFI_SMALLICON);
var
  fi : TSHFileInfo;
begin
  Result := nil;

  ZeroMemory(@fi,sizeof(fi));

  SHGetFileInfo(pchar(szFilename),FILE_ATTRIBUTE_NORMAL, fi, sizeof(fi),
    SHGFI_ICON or SHGFI_USEFILEATTRIBUTES or dwIconFlags[fSmall]);

  if(fi.hIcon <> 0) then
  begin
    Result := TIcon.Create;
    if(Result <> nil) then
      Result.Handle := fi.hIcon;
  end;
end;
  Mit Zitat antworten Zitat