这不可能是对的,但它正在发生在我身上。我有以下功能:
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 子项中的软件,但如果我在普通的软件子项中搜索它,它就会弹出。有什么想法吗?
谢谢, 布赖恩
最佳答案
Wow6432 项包含 32 位程序可以看到的注册表项。项目 + 属性,构建选项卡,检查您的平台目标设置。它在 VS2010 中默认为 x86。
可以更改注册表重定向,但不能使用 .NET RegistryKey 类。您必须调用注册表 API 函数。更多背景信息可用in the SDK .
关于c# - RegistryKey.GetSubKeyNames 返回不在该子项中的名称!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3860090/