【问题标题】:Trying to get MachineGuid through _winreg but not working试图通过 _winreg 获取 MachineGuid 但无法正常工作
【发布时间】:2013-12-06 21:33:06
【问题描述】:

我可以在我的注册表编辑器中看到该值,路径是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography,但无法通过以下代码获取该值:

import _winreg

key = _winreg.OpenKey(
    _winreg.HKEY_LOCAL_MACHINE,
    "SOFTWARE\\Microsoft\\Cryptography"
    )

result = _winreg.QueryValueEx(key, "MachineGuid")

print result

我得到“系统找不到指定的文件”,这令人困惑,因为它就在那里。

嗯,用几乎完全相同的代码检索其他值没有问题:

key = _winreg.OpenKey(
    _winreg.HKEY_LOCAL_MACHINE,
    "SOFTWARE\\Microsoft\\COM3"
    )


result = _winreg.QueryValueEx(key, "BuildType")

print result

输出为:(u'Free', 1)

我做错了哪一部分?我该怎么做才能得到这个MachineGuid

【问题讨论】:

    标签: python windows winreg


    【解决方案1】:

    您的代码在 32 位 Windows 上运行良好, 如果你希望它也能在 64 位 Windows 上运行,试试这个:

    key = _winreg.OpenKey(
        _winreg.HKEY_LOCAL_MACHINE,
        "SOFTWARE\\Microsoft\\Cryptography",
        0,
        _winreg.KEY_READ | _winreg.KEY_WOW64_64KEY
    )
    
    result = _winreg.QueryValueEx(key, "MachineGuid")
    print result
    

    参考:Change 64bit Registry from 32bit Python

    【讨论】:

      猜你喜欢
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      相关资源
      最近更新 更多