无法从注册表读取某些值
本文关键字:读取 注册表 | 更新日期: 2023-09-27 18:13:03
在我的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
Where 'SomethingElse'键是键,我不能看到与regedit?Version2显然也丢失了,但我可以看到它与regedit。
更新:澄清一下。可用的密钥(Version1)已经在那里了。添加了Version2,因为我导出了Version1密钥,编辑了文件,用Version2替换了Version1,并将其导入。那么如何复制密钥而不出现这个问题呢?
听起来你可能在Vista(或更高版本,如Win7或WS2008)上运行c#应用程序,并遇到注册表权限问题。这篇文章可能会有用:
http://msdn.microsoft.com/en-us/magazine/cc982153.aspx您可能还面临一个相关的问题,"注册表虚拟化":
http://msdn.microsoft.com/en-us/library/aa965884.aspx