关于价值类型:http://docs.python.org/2/library/_winreg.html#value-types
如何查询_winreg.REG_BINARY
的{{1}}?
我可以手动执行:
'REG_BINARY'
当然有更好的方法吗?
示例查询:
import _winreg
reg_type_str = {
_winreg.REG_BINARY: 'REG_BINARY',
_winreg.REG_DWORD: 'REG_DWORD',
_winreg.REG_DWORD_LITTLE_ENDIAN: 'REG_DWORD_LITTLE_ENDIAN',
_winreg.REG_DWORD_BIG_ENDIAN: 'REG_DWORD_BIG_ENDIAN',
_winreg.REG_EXPAND_SZ: 'REG_EXPAND_SZ',
_winreg.REG_LINK: 'REG_LINK',
_winreg.REG_MULTI_SZ: 'REG_MULTI_SZ',
_winreg.REG_NONE: 'REG_NONE',
_winreg.REG_RESOURCE_LIST: 'REG_RESOURCE_LIST',
_winreg.REG_FULL_RESOURCE_DESCRIPTOR: 'REG_FULL_RESOURCE_DESCRIPTOR',
_winreg.REG_RESOURCE_REQUIREMENTS_LIST: 'REG_RESOURCE_REQUIREMENTS_LIST',
_winreg.REG_SZ: 'REG_SZ',
}
reg_type_str.get(_winreg.REG_SZ)
我想我应该可以做这样的事情:
reg_data, reg_type = _winreg.QueryValueEx(key, reg_value)
log.debug("Query: %s [%d:%s]" % (reg_data, reg_type, reg_type_str.get(reg_type)))
当然,这不起作用,但即使它使用此方法也会在与_winreg一起使用时引起问题:
>>> for k, v in _winreg.__dict__:
... if v == _winreg.REG_SZ:
... print k
Traceback (most recent call last):
File "<pyshell#468>", line 1, in <module>
for k, v in _winreg.__dict__:
ValueError: too many values to unpack
答案 0 :(得分:0)
我得出结论,我需要使用原始问题中提供的手动方法来完成。
解决这个问题的唯一方法是_winreg开发人员为我们提供功能。