C#读取Windows自动更新注册表返回';它是空的。
我有一个c#应用程序,我正在尝试从 HKEY\U本地\U计算机\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto 更新 它总是返回null 下面给出了代码示例C#读取Windows自动更新注册表返回';它是空的。,c#,registry,windows-server-2008-r2,C#,Registry,Windows Server 2008 R2,我有一个c#应用程序,我正在尝试从 HKEY\U本地\U计算机\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto 更新 它总是返回null 下面给出了代码示例 Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion"); {HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\C
Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion");
{HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion}
base {System.MarshalByRefObject}: {HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion}
Handle: {Microsoft.Win32.SafeHandles.SafeRegistryHandle}
Name: "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion"
SubKeyCount: 52
ValueCount: 11
View: Default
Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate");
null
Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto Update");
null
Registry.LocalMachine.OpenSubKey("Software\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate");
null
从上面的评论来看,您似乎正在尝试读取x64注册表。因此,请尝试使用基于x64的应用程序来阅读本文。它应该能解决你的问题。如果您使用基于x86的应用程序从基于x64的计算机读取注册表,则它将从 HKEY\ U本地\计算机\软件\ WOW6432节点\ 而不是阅读 HKEY_本地_机器\软件
而且您不会读取仅在x64注册表下可用的注册表项。您能告诉我您的windows平台(x86或x64)吗。还有您的应用程序平台(x86或x64)?windows-server-2008-R2仅在x64Try中提供,用于读取基于x64的应用程序的x64注册表表单。否则您将得到空响应。谢谢Rezoan!基于x64的应用程序修复了我的问题。在Windows 8.1 Enterprise(64位)上使用C#.NET 4.5.2。这仍然会为WindowsUpdate密钥返回null,因此其下没有任何内容。请尝试在x64位平台下构建应用程序。