4

我有 ac# 应用程序,我正在尝试从中读取“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
4

1 回答 1

2

形成上述评论,您似乎正在尝试读取 x64 注册表。所以尝试使用基于 x64 的应用程序来阅读这个。它应该可以解决您的问题。如果您使用基于 x86 的应用程序从基于 x64 的计算机读取注册表,那么它将读取,

HKEY_LOCAL_MACHINE\Software\Wow6432Node\

开始阅读,

HKEY_LOCAL_MACHINE\软件

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

于 2013-06-24T11:43:28.697 回答