C#读取Windows自动更新注册表返回null.

我有一个c#应用程序,我正在尝试从中读取“
WindowsUpdate”子密钥,

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto
Update

它总是返回null.

代码示例如下,

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_LOCAL_MACHINE\Software\Wow6432Node\

读书,

HKEY_LOCAL_MACHINE\Software

并且您不会读取仅在x64注册表下可用的注册表项.

点赞