我可以在注册表编辑器中看到值,路径为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
?
答案 0 :(得分:5)
您的代码在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