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é.
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");
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
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 \.