首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:winreg模块:Windows 7:无无效HKEY错误

Python:winreg模块:Windows 7:无无效HKEY错误
EN

Stack Overflow用户
提问于 2011-06-21 00:39:36
回答 1查看 1.1K关注 0票数 0

我遇到问题时,读取注册表值为winth winreg模块.Any指针,以解决相同的?

代码:

代码语言:javascript
复制
try:
    ParentKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall")
    i = 0
    while 1:
        name, value, type = _winreg.EnumValue(ParentKey, i)
        print repr(name),
        i += 1

except Exception as e:
    print(Exception(e))

ParentKey =_winreg.DisableReflectionKey(ParentKey)    
temp = _winreg.QueryValueEx(ParentKey, 'DisplayName')
temp1 = _winreg.QueryValueEx(ParentKey, 'DisplayVersion')
temp2 = _winreg.QueryValueEx(ParentKey, 'Publisher')
temp3 = _winreg.QueryValueEx(ParentKey, 'InstallLocation')

display = str(temp[0])
display_ver=str(temp1[0])
display_p=str(temp2[0])
display_loc=str(temp3)
print ('Display Name: ' + display + '\nDisplay version:  ' + display_ver + '\nVendor/Publisher:  ' + display_p +'\nRegkey: ' + display_loc +'\nInstall Location: ' )

输出:

代码语言:javascript
复制
[Error 259] No more data is available
Traceback (most recent call last):
  File "C:\Users\Test\workspace\Pythontests\src\test.py", line 24, in <module>
    temp = _winreg.QueryValueEx(ParentKey, 'DisplayName')
TypeError: None is not a valid HKEY in this context
**strong text**
EN

回答 1

Stack Overflow用户

发布于 2011-06-21 00:53:54

这一行:

代码语言:javascript
复制
ParentKey = _winreg.DisableReflectionKey(ParentKey)

将返回None。没有将函数DisableReflectionKey记录为返回任何内容(成功或失败由是否引发异常来指示)。这样一个不返回任何内容的函数隐式返回None。由于您将返回值绑定到ParentKey,因此该变量将从那时起保存None

所以,当然接下来的调用,

代码语言:javascript
复制
_winreg.QueryValueEx(ParentKey, 'DisplayName')

将失败,因为QueryValueEx需要定义的密钥(而不是None)才能工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6414567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档