Comment écrire à la commune dossier de Données d'Application?
J'ai une application Visual Basic 6.0 que je veux installer pour Tous les Utilisateurs, par exemple, le paramètre est stocké dans un seul endroit peu importe qui se connecte à l'ordinateur. J'ai le code suivant pour localiser le lieu commun:
Const ssfCOMMONAPPDATA = &H23
Dim strAllUsersPath As String
strAllUsersPath = CreateObject("Shell.Application").NameSpace(ssfCOMMONAPPDATA).Self.Path
Sur Windows XP, le chemin d'accès des points de C:\Documents and Settings\All Users\Application Data\
dossier. Le programme d'installation copie le fichier de paramètres de là et tout est grand. Le Visual Basic 6.0 application peut modifier à tout moment.
Sur Windows 7, ce chemin de points de c:\ProgramData
dossier. Le programme d'installation, qui nécessite des privilèges d'administrateur, copies le fichier. Toutefois, lorsque mon application Visual Basic 6.0 commence et accède à un fichier, Windows 7 copies le fichier de paramètres pour un C:\Users{CONNEXION de l'UTILISATEUR}\AppData\Local\VirtualStore\ effectue toutes les opérations sur elle. Comme un résultat, parce que pour chaque utilisateur, Windows 7 copies le fichier de paramètres vers un autre répertoire de l'utilisateur, les utilisateurs finissent par avoir un autre fichier de paramètres.
Suis-je stocker le fichier dans le mauvais endroit? Suis-je dans la mauvaise manière?
OriginalL'auteur AngryHacker | 2012-05-08
Vous devez vous connecter pour publier un commentaire.
Celui-ci a mordu moi aussi. Le
ProgramData
dossier a partagé un Accès en Lecture, pas d'accès en écriture. Vous pouvez bien sûr modifier les autorisations sur le dossier lors de l'installation, mais je pense que c'est contraire à la façon dont Microsoft signifiait qu'il soit.Voir cette autre question pour certains liens utiles
Comment Microsoft pense que cela doit être fait.
COMMONAPPDATA
. Voici un nice VB6 article de Karl Peterson sur le sujet de l'emplacement où stocker les paramètres. Et ce VB6 questionCet article dit tout cela très bien en effet. Je suis à l'aide de son CSystemFolders classe dans mon application VB6 depuis plus d'un an maintenant, sans hickups (2500 utilisateurs)
ProgramData ne pas avoir "partagé" rien d'accès. CommonAppData est parfaitement bien et est recommandé et préféré par Microsoft pour, eh bien, commun de données d'application - comme le nom le suggère. Le hic, c'est votre installateur qui devrait créer l'application du sous-dossier là et mettre de sécurité appropriées pour permettre d'accès requis (souvent, vous voulez un Contrôle total pour les Utilisateurs). Par défaut, les fichiers et les dossiers sont créés avec propriétaire de l'accès. Je serais prudent au sujet de quelque chose de Karl, il a souvent de larges brosses choses et rate le point - mais aucun de nous n'est parfait.
Vous pouvez également faire une "première" case puis élever et de créer le sous-dossier de la structure et de définir la sécurité si votre installateur n'est pas jusqu'à présent.
C'est un problème dans Windows 8 - vient de découvrir aujourd'hui. Pas sûr de la façon dont jamais nous ne sommes pas parvenu dans Windows 7?
OriginalL'auteur Dabblernl