从注册表C#中读取值

时间:2016-05-15 01:00:25

标签: c# registry

我正在尝试阅读最近的

这是我现在的代码:

RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Visual Studio\12.0\ProjectMRUList");
            string data2 = (string)registryKey.GetValue("File1".ToUpper());
            recentProjects.Items.Add(data2);

我一直收到一个空错误。

  

System.NullReferenceException:未将对象引用设置为实例   一个对象。

错误已开启

string data2 = (string)registryKey.GetValue("File1");

1 个答案:

答案 0 :(得分:1)

子项实际上是“VisualStudio”,而不是“Visual Studio”。试试以下内容:

    RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\VisualStudio\12.0\ProjectMRUList");
    string data2 = (string)registryKey.GetValue("File1".ToUpper());

或者更好的是,您可以控制环境是32位还是64位,例如......

using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64))
        {
            using (var key = hklm.OpenSubKey(@"Software\Microsoft\VisualStudio\12.0\ProjectMRUList"))
            {
                string data2 = (string)key.GetValue("File1".ToUpper());
            }
        }