Wir haben eine NET-App, die im Ordner Programme installiert wird. Die App selbst schreibt einige Dateien und erstellt einige Verzeichnisse in ihrem App-Ordner. Aber wenn ein normaler Windows-Benutzer versucht, unsere Anwendung zu verwenden, stürzt er ab, weil dieser Benutzer keine Berechtigung zum Schreiben in den App-Ordner hat. Gibt es einen Ordner in WinXP und WinVista, auf den standardmäßig alle Benutzer Schreibberechtigungen haben? Alles Benutzerordner oder etwas ähnliches?Gibt es in WinXP und WinVista einen Ordner, für den alle Benutzer Schreibberechtigungen haben?
Antwort
Es gibt keine solche Ordner sein würde.
Aber Sie können einen erstellen.
Es gibt CSIDL_COMMON_APPDATA, die in Vista Karten% Programdata% (c: \ Programdata) und in XP abbildet c: \ Dokumente und Einstellungen \ AllUsers \ Anwendungsdaten
Fühlen Sie sich frei einen Ordner dort zu schaffen in Ihrem Installer und legen Sie die ACL so fest, dass jeder in diesen Ordner schreiben kann.
Beachten Sie, dass COMMON_APPDATA in Version 5 der Common Controls-Bibliothek implementiert wurde, was bedeutet, dass es in Windows 2000 und höher verfügbar ist. In NT4 können Sie diesen Ordner in Ihrem Installationsverzeichnis und in Windows 98 und darunter erstellen, da diese Systeme sowieso kein Berechtigungssystem haben. Hier
einige Beispiele InnoSetup Code erstellen Sie diesen Ordner:
[Dirs]
Name: {code:getDBPath}; Flags: uninsalwaysuninstall; Permissions: authusers-modify
[Code]
function getDBPath(Param: String): String;
var
Version: TWindowsVersion;
begin
Result := ExpandConstant('{app}\data');
GetWindowsVersionEx(Version);
if (Version.Major >= 5) then begin
Result := ExpandConstant('{commonappdata}\myprog');
end;
end;
Ich bin nicht sicher, dass es einen einzigen Pfad gibt, auf den alle Nicht-Administrator-Benutzer Schreibberechtigung haben.
ich glaube, die richtige <User>\Application Data
fantastisch, das war genau das, was ich suchte. –