from _winreg import *
"""print r"*** Reading from SOFTWARE\Microsoft\Windows\CurrentVersion\Run ***" """
aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)
aKey = OpenKey(aReg, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")
for i in range(1024):
try:
asubkey=EnumKey(aKey,i)
val=QueryValueEx(asubkey, "DisplayName")
print val
except EnvironmentError:
break
有人能纠正这个错误吗…我只想在注册表项HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall的子项中显示“DisplayName” 这就是我得到的错误。。
Traceback (most recent call last):
File "C:/Python25/ReadRegistry", line 10, in <module>
val=QueryValueEx(asubkey, "DisplayName")
TypeError: The object is not a PyHKEY object
x64上的x86呢?Use 64-bit Specific Types
如果“Uninstall”中有超过1024个子键怎么办?Use _winreg.QueryInfoKey(key)
Python2:
Python3:
正如在_winreg.QueryValueEx文档中所说,您需要传递一个已经打开的密钥。EnumKey返回一个字符串,而不是一个打开的键。
Documentation表示
EnumKey
返回带有键名的字符串。必须用_winreg.OpenKey
函数显式打开它。我已经修复了您的代码片段:请注意,并非每个键都有“DisplayName”值。
相关问题 更多 >
编程相关推荐