C# 无法访问某些注册表子项

C# 无法访问某些注册表子项,c#,registry,C#,Registry,我需要访问此注册表项的所有子项: HKLM\SOFTWARE\Microsoft\Office\15.0\Common\ 此注册表项有12个子项。但是当我尝试访问这些子键时,代码只返回3个子键 我需要访问子键InstallRoot: HKLM\SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot 但是代码返回null 我的代码如下: RegistryKey key = Registry.LocalMachine

我需要访问此注册表项的所有子项:

HKLM\SOFTWARE\Microsoft\Office\15.0\Common\

此注册表项有12个子项。但是当我尝试访问这些子键时,代码只返回3个子键

我需要访问子键InstallRoot:

HKLM\SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot

但是代码返回null

我的代码如下:

RegistryKey key = 
      Registry.LocalMachine
              .OpenSubKey(@"SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot");

.NET Framework版本是2.0,我的操作系统是Win7 x64,我的应用程序是x86。

我跟踪了Hans的链接,在这里找到了一个很好的解决方案:


谢谢大家

向我们提供您的代码我猜您没有权限访问这些子密钥。您的代码何时返回null?关于这一点,您的代码是什么。您能否使用regedit检查HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office位置,并查看它是否包含有问题的3个子项?当我打开SOFTWARE\Microsoft\Office\15.0\Common\时,可以。但当我添加InstallRoot时,它返回null。找不到子项。当我用函数GetSubKeyNames得到所有子键时,它返回3个子键12。是的,zaitsman,你是对的。但是我没有在注册表路径中指明Wow6432。怎么可能呢?