转 Python的:WinReg项模块:Windows 7中:无无效HKEY错误

Python的:WinReg项模块:Windows 7中:无无效HKEY错误

python winreg
我遇到的问题,而阅读的注册表值的Windows 7 winth WinReg项模块。任何指针,以解决 代码:

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: ‘ )

输出:

[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**

本文地址 :CodeGo.net/8999004/ 
------------------------------------------------------------------------------------------------------------------------- 
1.这行:

ParentKey = _winreg.DisableReflectionKey(ParentKey)

将返回None。该函数DisableReflectionKey是不为返回任何东西(或失败是由一个异常是否被升高表示)。这样一个不返回任何回报函数Noneimplicit。既然你绑定返回值ParentKey,这个变量将持有None从这一点上。 所以,当然后续呼叫,

_winreg.QueryValueEx(ParentKey, ‘DisplayName‘)

因为将失败QueryValueEx需要自定义键(不None)工作。
本文标题 :Python的:WinReg项模块:Windows 7中:无无效HKEY错误
本文地址 :CodeGo.net/8999004/

时间: 2024-11-06 19:50:35

转 Python的:WinReg项模块:Windows 7中:无无效HKEY错误的相关文章

转 Python的WinReg项通过子键循环

Python的WinReg项通过子键循环 python winreg我能够从我的窗户下面的代码检索5子键7机器的注册表配置单元"HKEY_LOCAL_MACHINE". from _winreg import * try: i = 0 while True: subkey = EnumKey(HKEY_LOCAL_MACHINE, i) print subkey i += 1 except WindowsError: pass 我的问题是,我怎么再根据这些按键?我想最后列出了所有的钥匙

windows 2003添加删除windows组件中无iis应用程序服务器项的解决

一.解决方法如下: 1.开始 -- 运行 ,输入c:\\Windows\\inf\\sysoc.inf ,会打开这个文件; 找到 "[Components]" 这一段,在下面添加: " iis=iis.dll,OcEntry,iis.inf,,7 " .之后保存并关闭. 2.下载 iis6 安装包(附件下载), 解压到 D:/ 根目录下,方便使用; 3.开始 -- 运行 -- cmd ,打开命令行模式.执行下面两条命令: EXPand d:\\IIS6\\iis.d

win2003添加删除windows组件中无iis应用程序服务器项的解决方法

一.解决方法如下: 1.开始 -- 运行 ,输入c:\Windows\inf\sysoc.inf ,会打开这个文件; 找到 "[Components]" 这一段,在下面添加: " iis=iis.dll,OcEntry,iis.inf,,7 " .之后保存并关闭. 2.下载 iis6 安装包(附件下载), 解压到 D:/ 根目录下,方便使用; 3.开始 -- 运行 -- cmd ,打开命令行模式.执行下面两条命令: EXPand d:\IIS6\iis.dl_ c:

Python之路35-subprocess模块和Python3中常用执行shell命令方法

import subprocess #执行命令,返回命令执行状态 , 0 or 非0 retcode = subprocess.call(["free","-m"])    #返回值可判断执行是否正确,命令执行结果直接返回到屏幕 #执行命令,如果命令结果为0,就正常返回,否则抛异常 result = subprocess.check_call(["ls","-l"]) #执行命令,并返回结果,注意是返回结果,不是打印,下例结果

Python学习笔记-常用模块

1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作为输入执行.这就是传说中的 脚本.随着你的程序变得越来越长,你可能想要将它分割成几个更易于维护的文件.你也可能想在不同的程序中使用顺手的函数,而不是把代码在它们之间中拷来拷去. 为了满足这些需要,Python 提供了一个方法可以从文件中获取定义,在脚本或者解释器的一个交互式实例中使用.这样的文件被称

python 3 包与模块

包与模块 一 .模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 2 为何要使用模块 退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通

python基础31[常用模块介绍]

python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1)python运行时服务 * copy: copy模块提供了对复合(compound)对象(list,tuple,dict,custom class)进行浅拷贝和深拷贝的功能. * pickle: pickle模块被用来序列化python的对象到bytes流,从

python 第七章 模块

模块 一个py文件就是一个模块模块一共三种:1.python标准库 2.第三方模块 3.应用程序自定义模块 import:1.执行对应文件 2.引入变量名if__name__="__main__": #1.用于被调用文件测试 2.防止主程序被调用 time模块 常用命令 时间模块 1 import time 2 #时间戳: 3 print(time.tiem()) 4 5 #结构化时间(当地): 6 t =time.localtime(time.tiem()) 7 print(t) 8

Python之进程 - multiprocessing模块

? 我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程.多个进程可以实现并发效果,也就是说,当我们的程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快.以我们之前所学的知识,并不能实现创建进程这个功能,所以我们就需要借助python中强大的模块. ? 仔细说来,multiprocess不是一个模块而是python中一个操作.管理进程的包. 之所以叫multi是取自multipl