Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在64位系统上使用注册表。框架2.0_C#_.net_Winapi_.net 2.0_Registry - Fatal编程技术网

C# 在64位系统上使用注册表。框架2.0

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

如何在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_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为目标,那么您将获得机器架构的真正软件节点