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
Haushaltsbuch an. [/edit]