我可以在我的注册表编辑器中看到该值,路径是 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
?
最佳答案
您的代码在 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
关于python - 尝试通过 _winreg 获取 MachineGuid 但无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137486/