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

标签 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 子项中的软件,但如果我在普通的软件子项中搜索它,它就会弹出。有什么想法吗?

谢谢, 布赖恩

最佳答案

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

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

关于c# - RegistryKey.GetSubKeyNames 返回不在该子项中的名称!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3860090/

相关文章:

powershell - 仅当注册表中的 DWORD32 值已存在时才为其设置值 |电源外壳

c++ - 帮助处理注册表 C++ 中的枚举值

powershell - 确定 2017 年安装的 Visual Studio 路径

jenkins - 在 Jenkins 的 Docker 容器中使用证书

c# - 等待 HttpWebRequest.BeginGetResponse 在 Windows Phone 7 中完成

c# - 将大量表单数据发送到对象的最佳方式

c# - 监控网络流中的新数据

c# - 我如何在 Linq 中分组?

c# - 第二个参数没有传递给 Controller (ViewModel)

windows - Inno Setup 忽略注册表重定向?