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>
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\"")
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!