在我的C#应用程序中,我无法阅读一些注册表项,
RegistryKey key = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\");
RegistryKey key1 = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\Version1\\Databases");
RegistryKey key2 = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\Version2\\Databases");
第一个是主键,key1和key2是子键。我可以读取key1,但不能读取key2。
我可以使用regedit在注册表中看到两个键。如果我这样做很有意思,
key.GetSubKeyNames()
我得到一个这样的列表,
Version1,
SomethingElse1
SomethingElse2
哪里的'SomethingElse'键是我用regedit看不到的键?版本2显然也不见了,但我可以通过regedit看到它。
更新: 所以澄清一些事情。工作的关键(Version1)已经存在。添加了Version2,因为我导出了Version1键,编辑了文件以将Version1替换为Version2并将其重新导入。那么如何在没有此问题的情况下复制密钥呢?
答案 0 :(得分:1)
听起来您可能正在Vista(或更高版本,例如Win7或WS2008)上运行C#应用程序,并且正在运行注册表权限。这篇文章可能很有用:
http://msdn.microsoft.com/en-us/magazine/cc982153.aspx
您可能还面临一个相关问题,“注册表虚拟化”: