Où stocker les données accessibles en écriture à partager par tous les utilisateurs dans un programme d'installation Vista?

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

Question

Mon application est installée via NSIS.

Je souhaite que le programme d'installation installe le programme pour tous les utilisateurs.

Je peux le faire en installant dans le répertoire 'fichiers de programme'.

Il existe un fichier de base de données (firebird) que tous les comptes d'utilisateurs du système doivent partager.

Si je stocke ce fichier de base de données dans le répertoire 'fichiers de programme', il sera en lecture seule.

Si je le stocke dans le répertoire APPDATA des utilisateurs, ils auront chacun une copie différente. Lorsqu'un utilisateur ajoute des données, les autres ne les verront pas.

Option 1 - Dans le répertoire de l'application, sous "Fichiers de programme", créez un répertoire "Données". Dans mon installateur, mettez ce répertoire en lecture-écriture. Ainsi, la virtualisation de l'utilisateur des "fichiers de programme" ne sera pas activée. les utilisateurs peuvent mettre à jour le fichier et voir les modifications apportées.

D'autres options?

Était-ce utile?

La solution

Les données pour tous les utilisateurs doivent être stockées dans% ALLUSERSPROFILE% ou appelez SHGetFolderPath () avec le paramètre CSIDL_COMMON_APPDATA pour obtenir la zone de stockage de tous les utilisateurs.

Voir http://www.deez.info / sengelha / 2006/02/28 / windows-vista-changes / pour plus de détails.

Autres conseils

Quelque part sous le profil Tous les utilisateurs serait l’emplacement évident. Je pense qu’il existe certaines règles concernant les utilisateurs en lecture / écriture par défaut, mais la documentation de MS recommande de créer un sous-répertoire et de définir les ACL directement dans le programme d’installation.

Plus précisément, j'utiliserais:

SetShellVarContext all
SetOutPath $APPDATA
File "MyInsecurelySharedFile.txt"

Consultez le Référence sur les scripts NSIS pour plus d'informations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top