Home » Tipps & Tricks » Dateien/Verzeichnisse » Verzeichnisse » Pfad des Programme-Ordners ermitteln
Pfad des Programme-Ordners ermitteln
Dieser Artikel zeigt, wie man den Pfad des Programme-Ordners ermitteln kann. In diesem Verzeichnis werden unter Windows standardgemäß Programme installiert. Den genauen Pfad, der unter jeder Windows-Version unterschiedlich sein kann, lässt sich mit folgender Funktion ermitteln:
uses ShlObj, ActiveX, SHFolder; function GetProgramPath: string; const CSIDL_PROGRAM_FILES = $26; var p: PItemIDLIst; Buf: array [0..MAX_PATH-1] of Char; ShellH: IMalloc; begin if SHGetSpecialFolderLocation(Application.Handle, CSIDL_PROGRAM_FILES, p) = NOERROR then try if SHGetPathFromIDList(p, Buf) then Result := Buf; finally if SHGetMalloc(ShellH) = NOERROR then ShellH.Free(P); end; end;
Die Unit SHFolder ist erst ab Delphi 6 dabei. Verwenden Sie eine ältere Delphi-Version müssen Sie die Konstante CSIDL_PROGRAM_FILES erst deklarieren:
const CSIDL_PROGRAM_FILES = $26;
Im Internet tauchen häufig andere Lösungen auf, die den Pfad mithilfe von Umgebungsvariablen oder über die Registry auslesen. Die in diesem Artikel genannte Lösung ist den anderen auf jeden Fall vorzuziehen.