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

Bri*_*ney 2 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;
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢,布莱恩

Han*_*ant 9

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

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