在regedit中以编程方式读取HKEY_LOCAL_MACHINE并不显示相同的键

时间:2012-02-22 10:53:58

标签: c# registry regedit

供参考,它是HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE键。当我查看它时,我只看到1个(inst_loc)子项,以及为了我的应用而添加的两个子项。

但是,当应用程序(在同一个用户帐户下运行)读取它时,它没有看到我添加的两个键,但看到了其他键的TON,如ORACLE_HOME等。

这找到了很多键,但不是我添加的两个键:

RegistryKey regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\ORACLE", false);
foreach (string name in regkey.GetValueNames()) { }

任何人都知道这种差异的原因吗?

编辑:我做了一些挖掘工作。似乎当我加载LocalMachine.OpenSubKey(" SOFTWARE \ ORACLE",我实际上得到HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432NODE \ ORACLE。但是,如果客户端计算机上的值在HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE中,该怎么办?必须能够以某种方式访问​​它,最好检查两个地方的值......

0 个答案:

没有答案