Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.775 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: in Anwendungsdaten speichern

  Alt 2. Jan 2007, 13:36
Delphi-Quellcode:
function GetShellFolder(CSIDL: integer): string;
var
  pidl : PItemIdList;
  FolderPath : string;
  SystemFolder : Integer;
  Malloc : IMalloc;
begin
  Malloc := nil;
  FolderPath := '';
  SHGetMalloc(Malloc);
  if Malloc = nil then
  begin
    Result := FolderPath;
    Exit;
  end;
  try
    SystemFolder := CSIDL;
    if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
    begin
      SetLength(FolderPath, max_path);
      if SHGetPathFromIDList(pidl, PChar(FolderPath)) then
      begin
        SetLength(FolderPath, length(PChar(FolderPath)));
      end;
    end;
    Result := FolderPath;
  finally
    Malloc.Free(pidl);
  end;
end;
In die uses Klausel müssen noch die Units shlobj und ActiveX aufgenommen werden.

Diese Funktion eignet sich auch dazu andere spezielle Systemordner zu ermitteln. Übergibt man hier die Konstante CSIDL_APPDATA ($001A), bekommt man genau den gewünschten Ordner, nämlich C:\Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten.

GetShellFolder(CSIDL_APPDATA)+'tipp o meter\tasten.txt' Habe es Dir mal zusammenkopiert, etwas mehr Einsatz von Dir könnte man schon erwarten.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat