无法在Win7上访问HKLMSOFTWARE子密钥
本文关键字:HKLMSOFTWARE 密钥 访问 Win7 | 更新日期: 2023-09-27 18:15:10
我正在编写这个程序,它需要访问注册表以获取机器上的一些信息。它应该始终由Local Admin组中的某个人运行,并且将在Server 2003和2008机器上使用。基本上,在我主要编写它的服务器上,以及我在2003年和2008年测试的服务器上,它的大部分工作都很好。问题是,当我打开运行Windows 7的笔记本电脑时,我似乎无法使用它进行测试,因为我在试图读取或写入HKEY_LOCAL_MACHINE'SOFTWARE下面的注册表时出现错误。
我以本地管理员的身份登录,并且可以运行Regedit来创建密钥,例如test9999。如果我使用下面的语句,它总是返回null。
RegistryKey testKey = Registry.LocalMachine.OpenSubKey("SOFTWARE'test9999");
我试过放弃子键和软件将返回,但我没有能够得到任何低于这一点。
我使用的是MS vc# Express,我试过以"管理员"的身份运行它,也试过以同样的方式运行.exe,但它仍然继续为低于软件的任何东西返回null。我错过了什么?
原来在64位Windows上运行的32位进程的注册表重定向行为在Windows 7和Windows 2008 R2中发生了变化,这可能解释了为什么它在Windows 2008(我认为不是R2)上工作而不是在Windows 7上。
在这里阅读更多信息:http://msdn.microsoft.com/en-us/library/aa384232(v=vs.85).aspx