RegistryKey.GetSubKeyNames返回不在该子项中的名称!

时间:2010-10-05 00:20:22

标签: c# registry

这可能不对,但它正在发生在我身上。我有以下功能:

private static bool KeyExists(RegistryKey key, string search)
{
    //GetSubKeyNames is busted...
    foreach (string subKey in key.GetSubKeyNames())
    {
        if (subKey.Trim().Equals(search.Trim()))
        {
            return true;
        }
    }
    return false;
}

如果我把行String[] names = key.GetSubKeyNames()放在调试器中,我看到列出的名称不是我在regedit中看到的。例如,我安装了一个软件,它出现在Wow6432Node子项中,但如果我在普通的软件子项中搜索它,它会弹出。有什么想法吗?

谢谢, 布赖恩

1 个答案:

答案 0 :(得分:9)

Wow6432密钥包含32位程序看到的注册表项。项目+属性,构建选项卡,检查您的平台目标设置。它在VS2010中默认为x86。

可以更改注册表重定向,但不能更改.NET RegistryKey类。您必须调整注册表API函数。有更多背景信息in the SDK