Ce message vous explique comment ajouter des commandes d'inscription et de désinscription au menu contextuel des fichiers DLL et OCX dans Windows Vista, 7, 8 et 10.
Pour enregistrer un fichier DLL ou OCX, vous devez généralement exécuter regsvr32.exe à partir d'une invite de commandes élevée . L'enregistrement de DLL système à partir d'un état non élevé peut provoquer une erreur. Par exemple, essayez d'enregistrer le module système JScript.dll à partir de la zone Démarrer, Rechercher (c'est-à-dire sans l'élévation). Vous verrez l'erreur 0x80004005 ou 0x80007005 («L'ACCÈS EST REFUSÉ») lorsque vous le faites.
Méthode 1: enregistrer des DLL via le menu contextuel - verbe «runas»
Pour ajouter la commande Register dans le menu contextuel qui exécutera la commande Regsvr32.exe avec des droits élevés, vous pouvez utiliser le verbe runas spécial. Voici un fichier REG que j'ai créé, ajoute le verbe runas pour les types de fichiers DLL et OCX dans les clés de registre suivantes:
HKEY_CLASSES_ROOT \ dllfile \ runas HKEY_CLASSES_ROOT \ ocxfile \ runas
- Téléchargez le fichier register_runas.reg et enregistrez-le sur le bureau.
- Cliquez avec le bouton droit sur le fichier et choisissez Fusionner.
- Cliquez sur Oui lorsque vous êtes invité à confirmer.
Vous devriez maintenant voir la commande Register (as Administrator) dans le menu contextuel pour les types de fichiers DLL et OCX.
Méthode 2: définissez Regsvr32.exe pour toujours exécuter élevé
Comme vous ne pouvez utiliser le verbe «runas» que pour un seul élément, pour ajouter une commande «Annuler l'enregistrement», vous devez utiliser une méthode différente de la précédente. Voici une autre façon d'ajouter des commandes «Register» et «Unregister» au menu contextuel des fichiers DLL, sans utiliser le verbe «runas».
Cette méthode indique au système de toujours exécuter Regsvr32.exe élevé, en ajoutant une entrée de Registre AppCompatFlags\Layers
, et implémente les entrées de menu contextuel «Register» et «Unregister» de la manière habituelle.
Fichier REG
Éditeur de registre Windows version 5.00 [HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers] "C: \\ Windows \\ System32 \\ regsvr32.exe" = "~ RUNASADMIN" [HKEY_CLASSES_ROOT \ DllFile \ Shell \ Register] "HasLUAShield" = "" [HKEY_CLASSES_ROOT \ DllFile \ Shell \ Register \ command] @ = "C: \\ Windows \\ System32 \\ regsvr32.exe \"% 1 \ "" [HKEY_CLASSES_ROOT \ DllFile \ Shell \ Unregister] " HasLUAShield "=" "[HKEY_CLASSES_ROOT \ DllFile \ Shell \ Unregister \ command] @ =" C: \\ Windows \\ System32 \\ regsvr32.exe -u \ "% 1 \" "[HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Register] "HasLUAShield" = "" [HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Register \ command] @ = "C: \\ Windows \\ System32 \\ regsvr32.exe \"% 1 \ "" [HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Unregister] " HasLUAShield "=" "[HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Unregister \ command] @ =" C: \\ Windows \\ System32 \\ regsvr32.exe -u \ "% 1 \" "
Copiez les lignes ci-dessus dans le Bloc-notes et enregistrez le fichier avec l'extension .reg. Double-cliquez pour exécuter le fichier .reg. Cela ajoute les commandes "Register" et "Unregister" au menu contextuel des fichiers DLL et OCX.
Pour supprimer (annuler) les commandes Register et Unregister du menu contextuel, utilisez le fichier .reg suivant:
Éditeur de registre Windows version 5.00 [HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers] "C: \\ Windows \\ System32 \\ regsvr32.exe" = - [-HKEY_CLASSES_ROOT \ DllFile \ Shell \ Register] [- HKEY_CLASSES_ROOT \ DllFile \ Shell \ Unregister] [-HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Register] [-HKEY_CLASSES_ROOT \ OcxFile \ Shell \ Unregister]
C'est tout!