Einzelnen Beitrag anzeigen

Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Vista, XP & Co.: Dateien speichern

  Alt 4. Sep 2008, 23:45
Hi,

es gibt da so eine Systemfunktion, die die sagt, wohin die Daten gehören. Egal, unter welchem Win, die landen dann immer an der richtigen Stelle, auch, wenn sich das mal ändert.

Für Delphi vereinfacht dann so:

Delphi-Quellcode:

// [url]http://www.delphipraxis.net/post488514.html#488514[/url]
function GetSpecialFolderLocation(csidl: integer): string;
var
  pMalloc: IMalloc;
  pidl: PItemIDList;
  path: array [0..MAX_PATH] of Char;
begin
  Result := '?';
  if SHGetMalloc(pMalloc) = S_OK then
  begin
    SHGetSpecialFolderLocation(0, csidl, pidl);
    SHGetPathFromIDList(pidl, path);
    Result := IncludeTrailingPathDelimiter(Path);
    pMalloc.Free(pidl);
  end;
end;
Steht ganz oft hier in der DP, ich guck lieber in meinem Source nach, aber da hab ich ja die Quelle angegeben. Hab sie irgendwo aus der DP rauskopiert. Gibt aber glaub ich noch ne verbesserte Variante.

Und dann:

Delphi-Quellcode:
AppDataDir := GetSpecialFolderLocation(CSIDL_APPDATA) +
    'DeinNameOderDeineFirmaOderSo\DeinProgramm\';
  ForceDirectories(AppDataDir);
Und dann existiert dein Anwendungsdatenverzeichnis. Am besten du schreibst noch ein Tool dazu, dass die Userrückstände dann später löscht, da die Deinstallation natürlich nicht auf ALLE Userprofile zugreift.

Mfg
FAlter

[edit] Für ein kleines Tool empfiehlt es sich, das wählbar zu gestalten, entweder direkt im Anwendungsverzecihnis (z. B. wenn es auf USB-Stick ist) oder unter Anwendugsdaten (lokal installiert). Sieh dir mal meine tolles Hier im Forum suchenHaushaltsbuch an. [/edit]
Felix Alter
  Mit Zitat antworten Zitat