Maison >développement back-end >C++ >Comment une application 32 bits peut-elle accéder au registre Windows 64 bits ?
Lorsqu'une application 32 bits s'exécute sur un système Windows 64 bits, elle ne peut accéder à la clé de registre que sous HKEY_LOCAL_MACHINESoftwareWow6432Node. Cependant, dans certains cas, l'accès au registre 64 bits est requis.
Utilisation de .NET Framework 4.x et supérieur :
.NET Framework 4.x et versions ultérieures fournissent l'énumération RegistryView, permettant un accès direct aux clés de registre 64 bits et 32 bits. Voici comment procéder :
Accéder au registre 64 bits :
<code class="language-csharp">using Microsoft.Win32; RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); // 对64位注册表执行操作</code>
Accéder au registre 32 bits :
<code class="language-csharp">RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); // 对32位注册表执行操作</code>
Pour les situations où vous devez accéder à des clés de registre 64 bits et 32 bits, vous pouvez utiliser la méthode suivante :
<code class="language-csharp">// 获取64位和32位节点的所有注册表值 var mergedValues = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).GetValues() .Concat(RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).GetValues()); // 获取64位和32位节点的所有注册表项 var mergedKeys = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).GetSubKeyNames() .Concat(RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).GetSubKeyNames());</code>
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!