Pfad des Programme-Ordners ermitteln |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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:
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:
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.