Gibt es einen Ordner in beide WinXP und WinVista auf das alle Benutzer Schreibrechte haben?
-
09-06-2019 - |
Frage
Wir haben eine NET-Anwendung, die auf den Ordner Programme installiert wird. Die App selbst schreibt einige Dateien und erstellt einige Verzeichnisse auf seine App-Ordner. Aber wenn ein normaler Windows-Benutzer versucht, unsere Anwendung zu verwenden, es stürzt ab, weil der Benutzer nicht über die Berechtigung zum App-Ordner zu schreiben. Gibt es einen Ordner in beiden WinXP und WinVista, auf die alle Benutzer Schreibrechte standardmäßig? Alle Benutzerordner oder so etwas?
Lösung
Es gibt keinen solchen Ordner.
Aber Sie können erstellen.
Es gibt CSIDL_COMMON_APPDATA das in Vista Karten% Programdata% (c: \ Programdata) und in XP Karten zu C: \ Dokumente und Einstellungen \ AllUsers \ Anwendungsdaten
Sie können ferner einen Ordner gibt es in Ihrem Installateur zu erstellen und die ACL so festgelegt, dass jeder in diesem Ordner schreiben kann.
Beachten Sie, dass COMMON_APPDATA in Version 5 der gemeinsamen Kontrollen 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 erstellen und in Windows 98 und darunter nicht sowieso egal wegen dieser Systemen nicht sowieso ein Berechtigungssystem.
Hier einige Beispiel-Code InnoSetup diesen Ordner zu erstellen:
[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;
Andere Tipps
Ich bin nicht sicher, dass es ein einziger Weg ist, auf das alle Benutzer ohne Administratorrechte der Berechtigung zu schreiben.
ich glaube, die richtige würde <User>\Application Data