C# 在64位系统上使用注册表。框架2.0
如何在64位系统的HKLM\SOFTWARE中获取子键列表 p.S.如果我使用C# 在64位系统上使用注册表。框架2.0,c#,.net,winapi,.net-2.0,registry,C#,.net,Winapi,.net 2.0,Registry,如何在64位系统的HKLM\SOFTWARE中获取子键列表 p.S.如果我使用 Registry.LocalMachine.OpenSubKey(“软件\\”,false) 然后我进入HKLM\SOFTWARE\Wow6432Node 我可以使用.NET Framework不高于2.0的版本,答案似乎很复杂,而且可能有太多代码放在堆栈溢出上 总结是,您需要p/Invoke来访问的本机Windows API调用,并确保传入标志键\u WOW64\u 64KEY以始终访问64位注册表。(KEY_WO
Registry.LocalMachine.OpenSubKey(“软件\\”,false)
然后我进入HKLM\SOFTWARE\Wow6432Node
我可以使用.NET Framework不高于2.0的版本,答案似乎很复杂,而且可能有太多代码放在堆栈溢出上 总结是,您需要p/Invoke来访问的本机Windows API调用,并确保传入标志键\u WOW64\u 64KEY以始终访问64位注册表。(KEY_WOW64_32KEY是始终访问32位密钥的标志) 部分解决方案已发布在上
对于任何可以运行.NET 4.0的人,您都可以使用新的支持:(RegistryHive.LocalMachine,RegistryView.Registry64) 答案似乎很复杂,而且可能有太多代码放在堆栈溢出上 总结是,您需要p/Invoke来访问的本机Windows API调用,并确保传入标志键\u WOW64\u 64KEY以始终访问64位注册表。(KEY_WOW64_32KEY是始终访问32位密钥的标志) 部分解决方案已发布在上
对于任何可以运行.NET 4.0的人,您都可以使用新的支持:(RegistryHive.LocalMachine,RegistryView.Registry64) 您将获得应用程序运行或编译时使用的任何架构的注册表。 如果您以x86为目标,那么您将始终在64位计算机上获得32位注册表(“Wow6432Node”)。
如果您以任何CPU为目标,那么您将获得机器体系结构的真正软件节点。您将获得应用程序运行或编译的体系结构的注册表。 如果您以x86为目标,那么您将始终在64位计算机上获得32位注册表(“Wow6432Node”)。 如果您以任何CPU为目标,那么您将获得机器架构的真正软件节点