从注册表 C# 中读取值

Reading a value from registry C#

我正在尝试阅读最近的

这是我现在拥有的代码:

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

我一直收到空错误。

System.NullReferenceException: Object reference not set to an instance of an object.

错误在

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

子项实际上是 "VisualStudio",而不是 "Visual Studio"。尝试以下操作:

    RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\VisualStudio.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.0\ProjectMRUList"))
            {
                string data2 = (string)key.GetValue("File1".ToUpper());
            }
        }