Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#9

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 24. Jun 2009, 22:10
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;
  Mit Zitat antworten Zitat