Ich benutze folgende Funktion, um Systemordner zu ermitteln:
Delphi-Quellcode:
function GetShellFolder(CSIDL: integer): string;
var
pidl : PItemIdList;
FolderPath : string;
SystemFolder : Integer;
begin
FolderPath := '';
SystemFolder := CSIDL;
if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
begin
SetLength(FolderPath, MAX_PATH);
SHGetPathFromIDList(pidl, PChar(FolderPath));
SetLength(FolderPath, lstrlen(PChar(FolderPath)));
end;
Result := FolderPath;
end;
Unter XP liefert mir CSIDL_APPDATA das Appdata Verzeichnis den Benutzers. Unter Vista aber C:\Users\Michael\AppData\Roaming\. Wie bekomme ich das AppData Verzeichnis ohne
Roaming?
Es handelt sich um 32-Bit Vista.
Es scheint eine neue CSIDL zu geben: CSIDL_LOCAL_APPDATA:
Zitat:
The file system directory that serves as a data repository for local (nonroaming) applications. A typical path is C:\Documents and Settings\username\Local Settings\Application Data.
Als ich meine LuckieDIPS geschrieben habe, gab es die CSIDL, glaube ich noch nicht.