Null从注册表中获取价值

时间:2016-03-17 05:54:23

标签: c#

我想从注册表中获取价值,但价值为null

我在注册表中检查密钥并存在于具有值

的特定路径中
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS");
string st = key.GetValue("LastVerify").ToString();

之前我问过这个问题并将其标记为重复,我发现了几个有关此问题并且我使用答案但又有问题。

question 1

question 2

注册表的screnshot: enter image description here

1 个答案:

答案 0 :(得分:1)

您需要将目标计算机更改为x64,因为您无法使用x86读取此值。

using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS"))
{
      var value = key.GetValueNames();
}

此代码在x64下运行正常。

您可以在此处找到有关在x64和x86视图中访问注册表的更多信息:https://msdn.microsoft.com/en-us/library/aa384129.aspx

  

默认情况下,在WOW64上运行的32位应用程序访问32位   注册表视图和64位应用程序访问64位注册表   图。

如果查看进程管理器,regedit.exe以64位模式启动,则会打开与应用程序使用的视图不同的视图。