Wenn eine 32-Bit-Anwendung auf einem 64-Bit-Windows-System ausgeführt wird, kann sie nur auf den Registrierungsschlüssel unter HKEY_LOCAL_MACHINESoftwareWow6432Node zugreifen. In einigen Fällen ist jedoch Zugriff auf die 64-Bit-Registrierung erforderlich.
Verwendung von .NET Framework 4.x und höher:
.NET Framework 4.x und höher bietet die RegistryView-Enumeration, die den direkten Zugriff auf 64-Bit- und 32-Bit-Registrierungsschlüssel ermöglicht. So geht's:
Zugriff auf die 64-Bit-Registrierung:
<code class="language-csharp">using Microsoft.Win32; RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); // 对64位注册表执行操作</code>
Zugriff auf die 32-Bit-Registrierung:
<code class="language-csharp">RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); // 对32位注册表执行操作</code>
In Situationen, in denen Sie sowohl auf 64-Bit- als auch auf 32-Bit-Registrierungsschlüssel zugreifen müssen, können Sie die folgende Methode verwenden:
<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>
Das obige ist der detaillierte Inhalt vonWie kann eine 32-Bit-Anwendung auf die 64-Bit-Windows-Registrierung zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!