Wo beschreibbaren zum Speichern von Daten von allen Benutzern in einem Vista-Installer geteilt werden?

StackOverflow https://stackoverflow.com/questions/114194

Frage

Meine App ist über NSIS installiert.

Ich mag das Installationsprogramm, das Programm für alle Benutzer zu installieren.

Ich kann dies tun, indem Sie auf die ‚Programmdateien‘ Verzeichnis installieren.

Es gibt eine Datenbankdatei (Firebird), dass alle Benutzerkonten auf dem System gemeinsam nutzen sollten.

Wenn ich diese Datenbankdatei speichern in der ‚Programmdateien‘ Verzeichnis wird nur gelesen werden.

Wenn ich es in dem Benutzer APPDATA Verzeichnis speichern sie jeweils eine andere Kopie haben, wenn ein Benutzer Daten hinzufügt werde nicht die anderen es sehen.

Option 1 - In meinem App-Verzeichnis unter ‚Programmdateien‘ erstellen ‚Daten‘ Verzeichnis, in meinem Installateur dies dir macht les- und beschreibbaren von allen, auf diese Weise der Benutzer-Programmdateien 'Virtualisierung nicht in kicken und all Benutzer können die Datei aktualisieren und jede andere Änderungen sehen.

Jede andere Optionen?

War es hilfreich?

Lösung

Die Daten für alle Benutzer sollten in% ALLUSERSPROFILE% gelagert werden, oder rufen Sie SHGetFolderPath () mit dem Parameter CSIDL_COMMON_APPDATA die alle Benutzer-Speicherbereich zu erhalten.

Siehe http://www.deez.info / sengelha / 2006/02/28 / windows-vista-Änderungen / für weitere Details.

Andere Tipps

Irgendwo unter dem Profil für alle Benutzer würde die offensichtliche Lage sein. Ich denke, es gibt einige Regeln darüber, wer lesen bekommt / schreibt standardmäßig, aber die MS-Dokumentation empfiehlt, wenn Sie etwas brauchen andere ein Unterverzeichnis zu erstellen und die ACLs direkt im Installationsprogramm festgelegt.

Dies ist eine Sicherheitslücke finden Sie unter: http: / /blogs.msdn.com/oldnewthing/archive/2004/11/22/267890.aspx

Insbesondere würde ich verwenden:

SetShellVarContext all
SetOutPath $APPDATA
File "MyInsecurelySharedFile.txt"

Sehen Sie die NSIS-Skriptreferenz für weitere Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top