Nimm nicht die Environmentvariable, sondern besorge Dir den Pfad richtig über die
API. Catbytes hat dazu ja schon etwas verlinkt.
Ich hatte das woanders schonmal gepostet, hier einfach nochmal ein grober Codeschnipsel:
Delphi-Quellcode:
function SpecialDirectory(const iID: Integer): string;
// Needs: ShlObj on Delphi, WinExt on FPC
var aPath : array[0..MAX_PATH] of Char;
pilTemp: PItemIDList;
begin
try
if SHGetSpecialFolderLocation(0, iID, pilTemp)=S_OK then begin
if SHGetPathFromIDList(pilTemp, aPath) then begin
Result := string(aPath);
end else Result := '';
CoTaskMemFree(pilTemp);
end else Result := '';
except
Result := '';
end;
end;
var sPath: string;
begin
sPath := SpecialDirectory(CSIDL_APPPDATA);
end;