C#注册表键分配为空

时间:2018-01-09 10:45:17

标签: c#

我正忙着为自己和其他人创建一个小应用程序,但我有点被困在这里。

我想用路径获取寄存器'regedit'的值。但是,即使我从regedit复制路径,''RegistryKey'值也始终为null。

private bool HasKey
    {
        get
        {
            try
            {
                string path = @"Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0002";
                using (RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(path, false))
                {
                    if(key != null)
                    {
                        return true;
                    }
                }
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex);
                return false;
            }

            return false;
        }
    }

我只想编写一个他找到密钥的bool函数..但变量'key'始终为null。

1 个答案:

答案 0 :(得分:0)

试试这个

string path = @"\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0002";
using (RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
{
    using (var subKey = key.OpenSubKey(path, false))
    {
        if (subKey != null)
        {
            return true;
        }
    }
}