Je veux stocker des fichiers et les modifier pour mon logiciel dans les données d'application courantes sous Windows 7. p>
Je ne sais pas pourquoi Windows 7 ne permet pas à mon logiciel de modifier des fichiers Sauf si je les exécute comme administrateur. P>
Où puis-je stocker mes fichiers, de sorte qu'il ne nécessitera pas l'autorisation d'administrateur? P>
5 Réponses :
Vous devez utiliser l'altitude afin de modifier ces fichiers, en raison du contrôle d'accès des utilisateurs. Jetez un oeil à cet article de MSDN pour plus de détails: article MSDN sur UAC p>
Si vous ne savez pas comment faire cela dans C #, voici un article: article sur demande d'altitude en C # p>
+0: demandant une altitude juste pour enregistrer les paramètres d'application est une mauvaise idée.
L'élévation n'est pas nécessaire pour écrire des données d'application communes ... mais l'application doit exécuter un compte administrateur ....
Certains dossiers sont restreints à partir de Windows 7, ces dossiers ne doivent pas être touchés à moins que vous installiez, désinstaller ou corrigé. S'il vous plaît voir Ma réponse que vous avez acceptée de plus tôt aujourd'hui c'est exactement le même cas . s>
Si vous avez plusieurs aplications qui doivent modifier les mêmes fichiers, ils doivent être stockés dans P> lire Cet article de la MSDN Il explique où Vous devriez sauvegarder des données et utiliser correctement les différents dossiers. Ma solution est la première sur sa liste, de résumer: p> Vous devez créer un dossier pendant que vous installez le programme dans le dossier CommonAppLicationData, puis définissez les autorisations sur ce nouveau dossier afin qu'il aura donc écriture de l'accès du groupe d'utilisateurs. strong> p> p> system.environment.specialfolder.comMonpogramfiles code> (le dossier que je pense que vous essayez d'écrire à) est lu que si vous êtes élevé. p>
J'ai utilisé cela et stocké mes fichiers dans ce dossier, mais Windows n'autorise pas le changement!
Hmmm, je viens de vérifier mes autorisations sur c: \ programdata et il est lu que ... hmmm
Non, j'ai utilisé CommonapplicationData, où puis-je stocker mes fichiers, donc je ne demanderai pas à l'autorisation d'administrateur.
Si votre objectif est d'avoir des paramètres partagés entre tous les utilisateurs d'une machine, c'est une bonne solution. Sinon, essayez une de mes suggestions. Désactiver l'UAC n'est pas un bon moyen de résoudre ce problème.
C'est une option de sécurité activée par défaut dans Windows 7 à savoir UAC (contrôle de compte d'utilisateur). Vous devriez changer votre conception (écrire ailleurs) ou désactiver UAC du panneau de commande \ comptes d'utilisateur. P>
"Vous devriez changer votre conception (écrire ailleurs)" .. mais, où?
Vous devez stocker vos données de candidature dans un sous-dossier sous Les utilisateurs non administratifs n'ont pas la permission d'écrire dans le dossier Notez que vous pouvez également stocker vos paramètres à l'aide de la classe Paramètres. Pour ce faire, ajoutez un nouvel élément à votre projet, choisissez «Fichier de paramètres». Ceci est approprié pour les paramètres de base tels que des chaînes et des chiffres. P> Environnement.GetFolderDePath (Environnement.Specialfolder.ApplicationData); Code>. Notez que ce dossier est spécifique à l'utilisateur. P>
CommonAppLicationData code>, car ce dossier n'appartient pas à des utilisateurs spécifiques. P>
J'ai rencontré ce même problème, mais à l'aide de l'installateur de configuration Inno, j'ai un paramètre nommé "Autorisations" où je définissais la valeur "Utilisateurs-Full" pour créer un fichier dans mon dossier d'application dans les données d'application courantes avec Contrôle total pour tous les utilisateurs de ce fichier. P>
@HENK: CommonApplicationData