2016-03-17 72 views
-4

价值我想从注册表值,但是他说:从注册表获得

对象引用不设置到对象的实例

关键在具体路径存在

RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS"); 
string st = key.GetValue("LastVerify").ToString(); 
+0

您得到的NullReferenceException意味着该调用中的某个内容将返回'null'。尝试将其分解为单独的语句,以便您可以确切地看到'null'的位置。 –

+0

您正在创建一个新密钥并从中获取价值。当然,这个值将是'null',因为它还不存在 –

+0

我在第一个例子中看到'CreateSubKey',在第二个例子中看到'OpenSubKey'。你能解释你在做什么,或者只是一种类型。 –

回答

2

您需要打开密钥,而不是创建它。

using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS")) 
{ 
    if (key != null) 
    { 
     var value = key.GetValue("LastVerify"); 
     if (value != null) 
     { 
      var lastVerify = value; // cast to whatever type LastVerify is 
     } 
    } 
} 
+0

再次值为空,我测试了这种方式并编辑了问题 – SajjadZare

+0

@SajjadZare所以?如果没有任何价值,它将为空...确保问题涵盖了你实际想要达到的目标... –

+0

我为注册表中的值设置,现在它具有价值 – SajjadZare