Maison > développement back-end > C++ > Comment puis-je accorder des privilèges d'élévation d'application Windows pour modifier les clés de registre protégées ?

Comment puis-je accorder des privilèges d'élévation d'application Windows pour modifier les clés de registre protégées ?

Patricia Arquette
Libérer: 2025-01-03 02:30:39
original
641 Les gens l'ont consulté

How Can I Grant My Windows Application Elevation Privileges to Modify Protected Registry Keys?

Accorder une élévation pour les modifications du registre dans les environnements Windows modernes

Dans le monde de la programmation Windows, modifier les clés de registre sous HKEY_CLASSES_ROOT était autrefois une tâche simple . Cependant, avec l'avènement de Windows 7 et l'accent mis sur le contrôle des comptes d'utilisateurs (UAC), les développeurs peuvent rencontrer l'erreur « L'accès au registre demandé n'est pas autorisé ».

Cette limitation provient du fait que la plupart des applications s'exécutent avec privilèges utilisateur standard dans Windows 7 et versions ultérieures. Pour modifier les clés de registre protégées telles que celles sous HKEY_CLASSES_ROOT, les applications nécessitent des privilèges administratifs.

Augmentation de votre code pour la prise en charge de l'UAC

Pour accorder à votre utilitaire de réglage les privilèges élevés nécessaires, vous devez mettre en œuvre la solution suivante :

1. Utiliser un manifeste d'application :

Créez un fichier manifeste avec l'extension ".manifest" dans le répertoire de votre application.

2. Configurez le manifeste :

Dans le fichier manifeste, définissez la structure XML suivante :

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
      <security>
         <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
         </requestedPrivileges>
      </security>
   </trustInfo>
</asmv1:assembly>
Copier après la connexion

3. Liez le manifeste :

Dans votre code C, ajoutez la ligne suivante à la section des directives du préprocesseur :

#pragma comment(linker,"/manifestdependency:\"MyApplication.manifest\"")
Copier après la connexion

En mettant en œuvre ces étapes, vous instruisez le système dont votre application a besoin privilèges d'administrateur pour effectuer des modifications du registre. Lorsque l'application est lancée, Windows invitera automatiquement l'utilisateur à accorder l'élévation, permettant à votre utilitaire de réglage d'accéder aux clés de registre protégées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal