C#get Office ClickToRun注册表项返回null

时间:2015-12-03 09:58:48

标签: c# registry office365

我想从注册表项" HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ ClickToRun \ Configuration"中获取一些信息。

在某些情况下,我没有获得注册表项对象。为了排除故障,我尝试了以下方法:

RegistryKey k2 = Registry.LocalMachine.OpenSubKey("SOFTWARE");
RegistryKey k3 = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft");
RegistryKey k4 = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Office");
RegistryKey k5 = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Office\\ClickToRun");

这是我所拥有的代码:

k2 - >正确的对象

k3 - >正确的对象

k4 - >正确的对象

k5 - >空

我已多次检查密钥的名称,当然密钥存在于系统上。

当我像这样搜索SubKey k4时:

foreach (string test in k4.GetSubKeyNames()) {
    test.ToString();
}

我找不到密钥" ClickToRun"但是我可以找到一些没有用regedit显示的键。用其他注册表项测试代码,它工作正常。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题在于64位注册表。我在64位mashine上安装了32位Office。现在我使用64位注册表委托,它工作正常。

有关更多信息,请参阅此artice:

Reading 64bit Registry from a 32bit application

相关问题