Éviter De Registre Wow6432Node Redirection
J'essaie d'insérer quelques simples clés de registre à l'aide de Microsoft.Win32.RegistryKey en c#, mais le chemin change automatiquement à partir de:
HKEY_LOCAL_MACHINE\SOFTWARE\Test
à
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Test
J'ai essayé google mais je ne reçois que quelques vagues et confus résultats. Quelqu'un a abordé ce problème avant? Un exemple de code serait beaucoup appereciated.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser RegistryKey.OpenBaseKey pour résoudre ce problème:
Sous WOW64, certaines clés de registre sont redirigés (LOGICIEL). Lorsqu'un 32 bits ou en 64 bits permet un registre d'appel pour un redirigé clé, le redirecteur de registre intercepte l'appel et les cartes à la clé physique correspondante de l'emplacement de registre. Pour plus d'informations, voir Redirecteur De Registre.
Vous pouvez utiliser le RegistryView Énumération sur RegistryKey.OpenBaseKey Méthode pour ouvrir la version 32 bits de vue explicitement et l'accès HKLM\Software\ directement.
Je ne sais pas comment le résoudre à l'aide d'un .le fichier reg. Mais seulement dans un fichier BAT, comme suit:
Vous devez ajouter
/reg:64
à la fin de la ligne de commande.ex:
Source: Wow6432Node et la façon de Déployer les paramètres de Registre pour les systèmes 64 bits via Sccm
Voici le code de travail, j'ai développé à la fois lire et écrire que le registre 32 bits. Il fonctionne en 32 bits et 64 bits des applications. La "lecture", appel des mises à jour de la base de registre si la valeur n'est pas définie, mais il est très évident pour vous de le supprimer. Il exige .Net 4.0, et utilise le OpenBaseKey/OpenSubKey méthodes.
Je l'utilise actuellement pour permettre à une version 64 bits de service d'arrière-plan et un 32 bits plateau de l'application à accéder aux mêmes clés de registre de façon transparente.
Utilisation:
Mettre cela dans son propre fichier de classe (.cs) et de l'appeler comme tel: