web-dev-qa-db-fra.com

Évitez la redirection du registre Wow6432Node

J'essaie d'insérer quelques clés de registre simples en utilisant Microsoft.Win32.RegistryKey en c # mais le chemin change automatiquement de:

HKEY_LOCAL_MACHINE\SOFTWARE\Test

à

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Test

J'ai essayé Google, mais je n'obtiens que des résultats vagues et déroutants. Quelqu'un a-t-il déjà traité ce problème? Un exemple de code serait très apprécié.

29
user1071461

Vous pouvez utiliser RegistryKey.OpenBaseKey pour résoudre ce problème:

var baseReg = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
var reg = baseReg.CreateSubKey("Software\\Test");
25
Hui

Je ne sais pas comment le résoudre en utilisant un fichier .reg. Mais uniquement dans un fichier BAT, comme suit:

Vous devez ajouter /reg:64 à la fin de la ligne de commande. ex:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background" /v "OEMBackground" /t REG_DWORD /d 0x00000001 /f /reg:64

Source: Wow6432Node et comment déployer les paramètres du Registre sur des systèmes 64 bits via Sccm

9
Pedro77

Sous WOW64, certaines clés de registre sont redirigées (LOGICIEL). Lorsqu'une application 32 bits ou 64 bits effectue un appel de Registre pour une clé redirigée, le redirecteur de Registre intercepte l'appel et le mappe à l'emplacement de Registre physique correspondant de la clé. Pour plus d'informations, consultez Registry Redirector .

Vous pouvez utiliser RegistryView Enumeration on RegistryKey.OpenBaseKey Method pour ouvrir explicitement la vue 32 bits et accéder directement à HKLM\Software \.

8
Jacob Seleznev