如何在64位系统中的 HKLM \ SOFTWARE 中获取子键列表?
P.S。如果我使用
Registry.LocalMachine.OpenSubKey("SOFTWARE\\", false)
然后我进入 HKLM \ SOFTWARE \ Wow6432Node
我可以使用.NET Framework不高于2.0
答案 0 :(得分:1)
答案似乎非常复杂,可能有太多代码要放在Stack Overflow上。
摘要是您需要P / Invoke才能访问RegOpenKeyEx的本机Windows API调用,并确保传入标志KEY_WOW64_64KEY以始终访问64位注册表。 (KEY_WOW64_32KEY是始终访问32位的标志)
部分解决方案已发布在this blog entry。
对于任何可以运行.NET 4.0的人,您可以使用新的支持:RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Registry64);
答案 1 :(得分:0)
您将获得正在运行或编译的应用程序的注册表。 如果您的目标是x86,那么您将始终在64位计算机上获得32位注册表(“Wow6432Node”)。 如果您的目标是AnyCPU,那么您将获得该机器架构的真实软件节点。