none
WMI远程注册表访问 RRS feed

  • 问题

  • 因为公司的要求,想要做一个软件信息收集工作。
    想到了远程注册表获取软件一览的方式,如下:
    //......
    string strHost = "localhost"; //主机名
    string regMain = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
    string[] subKey = { "DisplayName" };
    ManagementClass mClass = new ManagementClass(@"//" + strHost + @"/root/DEFAULT:StdRegProv");
    const uint HKEY_LOCAL_MACHINE = unchecked((uint)0x80000002);
    object[] method_args = new object[] { HKEY_LOCAL_MACHINE, regMain, null };
    uint result = (uint)mClass.InvokeMethod("EnumKey", method_args);
    string[] sAppList = (String[])method_args[2];
    //......
    
    


    以上代码在X86的windows上没有问题,但是获取X64系统时,
    regMain被重新定位到了
    " SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"

    请问如何修改代码以防止系统自动重定向注册表?

    谢谢!

    2011年9月23日 5:17

答案

全部回复