Ich benutze kein Vista, hab mir das letztens mit den Ordnern aber angeguckt und die Hände über den Kopf geschlagen. Ich hab (noch) keine Ahnung was Microsoft sich das ausgedacht hat. So hat ein Programm das ich installiert habe, seine Programme unter C:\Program Files installiert, das Programm befand sich aber plötzlich unter C:\Programme. Schau ich mir die Eigenschaften an, ist es aber unter C:\Program Files. U. U. hat das seine Richtigkeit.
Teste mal das (brauchst ein Meno und Button auf dem Formular). Sag mir welche Nummer dein Verzeichnis ist ist und ich sag dir welche Konstante es ist.
Delphi-Quellcode:
uses Shlobj;
function SpecialDirectory(ID: Integer): String;
var
pidl : PItemIDList;
Path : PChar;
begin
if SUCCEEDED(SHGetSpecialFolderLocation(0, ID, pidl)) then
begin
Path := StrAlloc(max_path);
SHGetPathFromIDList(pidl, Path);
Result := String(Path);
if (Result <> '') and (Result[Length(Result)] <> '\') then Result := Result + '\';
end
else Result := #0;
FreeMem(pidl);
FreeMem(Path);
end;
procedure GetPaths(st: TStrings);
var
i: Integer;
s: String;
begin
for i := 0 to 100 do
begin
s := SpecialDirectory(i);
if Trim(s) <> '' then
st.Add(Format('Wert %d = %s', [i, s]));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetPaths(Memo1.Lines);
end;