Registre demandé l'accès n'est pas autorisé
Je suis en train d'écrire un tweak utilitaire qui modifie certaines touches sous HKEY_CLASSES_ROOT
.
Tout fonctionne bien sous Windows XP et ainsi de suite. Mais j'obtiens une erreur Requested registry access is not allowed
sous Windows 7. Vista et 2008, j'imagine trop.
Comment dois-je modifier mon code pour ajouter l'UAC de soutien?
Vous devez vous connecter pour publier un commentaire.
app.manifest
devrait ressembler à ceci:App.manifest
VS racine du projet, et il sera automatiquement copié de sortie<appname>.exe.manifest
ou intégré dans l'assembléeVous ne pouvez pas écrire à la HKCR (ou HKLM) ruches dans Vista et les versions plus récentes de Windows, sauf si vous disposez de privilèges d'administration. Par conséquent, vous aurez besoin d'être connecté en tant qu'Administrateur avant d'exécuter votre utilitaire, de lui donner un manifeste qui dit qu'elle exige de niveau Administrateur (qui invite l'utilisateur Admin login info), ou arrêter de changer les choses dans des endroits que les non-Administrateurs ne devrait pas être jouer. 🙂
Si vous n'avez pas besoin d'admin privs pour l'ensemble de l'application, ou seulement pour quelques rares changements que vous pouvez faire les modifications dans un nouveau processus et de le lancer à l'aide de:
qui va exécuter le processus en tant qu'admin pour faire tout ce dont vous avez besoin avec le registre, mais de revenir à votre application avec la normale de privilèges. De cette manière, il n'a pas demander à l'utilisateur une boîte de dialogue contrôle de compte d'utilisateur à chaque fois qu'il lance.
Comme une solution temporaire, les utilisateurs peuvent à droite, cliquez sur l'utilitaire et sélectionnez "Exécuter en tant qu'administrateur".
J'ai essayé le
verb = "runas"
, mais j'étais quand même arriver UnauthorizedAccessException lorsque vous tentez de mettre à jour la valeur de registre. S'est avéré que c'était dû à ne pas ouvrir la sous-clé avec les droits en écriture définie sur true.Ne peut pas écrire dans la Clé de Registre, se UnauthorizedAccessException
Cette question a à voir avec l'octroi de l'autorisation nécessaire pour le compte d'utilisateur de l'application s'exécute. Pour lire une situation similaire et une réponse détaillée de la bonne solution, tel que documenté par Microsoft, n'hésitez pas à visiter ce post: http://rambletech.wordpress.com/2011/10/17/requested-registry-access-is-not-allowed/
Vous Pourriez Faire La même chose que abatishchev mais sans le contrôle de compte d'utilisateur