Documentation says that EnumKey
returns string with key’s name. You have to explicitly open it with _winreg.OpenKey
function. I’ve fixed your code snippet:
from _winreg import *
aKey = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE)
print(r"*** Reading from %s ***" % aKey)
aKey = OpenKey(aReg, aKey)
for i in range(1024):
try:
asubkey_name = EnumKey(aKey, i)
asubkey = OpenKey(aKey, asubkey_name)
val = QueryValueEx(asubkey, "DisplayName")
print(val)
except EnvironmentError:
break
Please note, that not every key has “DisplayName” value available.