![]() |
Betriebssystem: Win 7
Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
Hallo alle zusammen,
Ich möchte meine Delphi-Applikation Win 7-konform machen. Verschiedene Daten-Files, die die Applikation benötigt, werden immer noch im Programm-Ordner abgelegt. Die Empfehlungen von Microsoft im Dokument "Windows® 7 Client Software Logo" sind folgende:
Diese Angaben scheinen mir etwas ungenau. Da ich meine Applikation noch unter XP entwickle, habe ich nur eine VM mit Win 7 zur Verfügung, wo ich die Installation austeste. Bei diesem Win 7 besteht das Verzeichnis ProgramData aus alles gelockten Verzeichnissen (ausser Microsoft). Die anderen Verzeichnisse kann man nicht öffnen (access denied). Kann mir jemand sagen, wo man die Daten genau hinschreiben muss? z.B. Verzeichnis [App-Name] unter ProgramData oder Verzeichnis [App-Name] unter C:\ProgramData\Application Data\ oder.... Vielen Dank für euere Hilfe! Rolf |
AW: Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
Do wo sie auch schon unter Windows XP hingehört haben. Ich nehme mal an, du hast dein Programm unter XP noch nie als normaler Benutzer ausgeführt. Hol dir mit den SpecialFolder Funktionen das Appdata Verzeichnis und sie sollten da landen, wo sie unter dem jeweiligen Betriebsystem hingehören.
|
AW: Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
Wenn SharedData genutzt werden soll, dann muss in ProgramData ein Ordner mit passenden Rechten angelegt werden (wenn alle Benutzer dort schreiben soll).
Lesend ist kein Problem. Wie Luckie schon schreibt, nutze die API Funktionen und die Ordnerpositionen zu ermitteln. |
AW: Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
Danke Luckie und generic für eure rasche Antwort!
Nur kann ich diese API-Funktionen nicht finden. Jedenfalls finde ich nichts unter SpecialFolder und AppData, auch nicht in der Windows SDK. Ich nehme an, dass es unter Windows Environment-Parameter gibt, die entsprechend gesetzt sind. Ich kenne von Inno Setup entsprechende Konstanten wie {commonappdata} und {userappdata}, aber weiss nicht, wie man diese in Delphi oder C++Builder abruft. |
AW: Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
![]() ![]() |
AW: Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
Zitat:
![]() ![]() ... [edit] zu lahm (ich wünschte mir, wir hätten eine RedBox) |
AW: Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
[QUOTE=himitsu;1159293]
Zitat:
|
AW: Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
Du kannst die Funktion von Luckie verwenden:
![]()
Delphi-Quellcode:
Bsp.:
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;
Delphi-Quellcode:
Liste aller CSIDL-Konstanten:
uses
..., Windows, ShlObj, ActiveX; ... var path: String; begin path := GetShellFolder(CSIDL_APPDATA); path := IncludeTrailingPathDelimiter(path); ShowMessage(path); end; ![]() |
AW: Wo müssen Applikationsdaten unter Win 7 gespeichert werden?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz