32 ビット アプリケーションが 64 ビット Windows システムで実行されている場合、HKEY_LOCAL_MACHINESoftwareWow6432Node の下にあるレジストリ キーにのみアクセスできます。ただし、場合によっては、64 ビット レジストリへのアクセスが必要になります。
.NET Framework 4.x 以降の使用:
.NET Framework 4.x 以降では RegistryView 列挙が提供され、64 ビットおよび 32 ビットのレジストリ キーに直接アクセスできます。その方法は次のとおりです:
64 ビット レジストリにアクセスします:
<code class="language-csharp">using Microsoft.Win32; RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); // 对64位注册表执行操作</code>
32 ビット レジストリにアクセスします:
<code class="language-csharp">RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); // 对32位注册表执行操作</code>
64 ビットと 32 ビットの両方のレジストリ キーにアクセスする必要がある場合は、次の方法を使用できます:
<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>
以上が32 ビット アプリケーションはどのようにして 64 ビット Windows レジストリにアクセスできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。