枚举注册表的Python脚本

枚举注册表的Python脚本,python,registry,enumeration,Python,Registry,Enumeration,它采用“DisplayName”、“DisplayVersion”和“Publisher”。列表的长度不匹配,即使我已经给出了要输入的“无”值(如果该值不存在) 这段代码仍然没有枚举注册表“uninstall”子项的所有内容 我做错什么了吗 提前谢谢 from _winreg import * areg=ConnectRegistry(None,HKEY_LOCAL_MACHINE) akey=OpenKey(areg,r"SOFTWARE\Microsoft\Windows\CurrentV

它采用“DisplayName”、“DisplayVersion”和“Publisher”。列表的长度不匹配,即使我已经给出了要输入的“无”值(如果该值不存在)

这段代码仍然没有枚举注册表“uninstall”子项的所有内容

我做错什么了吗

提前谢谢

from  _winreg import *
areg=ConnectRegistry(None,HKEY_LOCAL_MACHINE)
akey=OpenKey(areg,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")
count=0

for i in range (1024):
    try:
        subkey=EnumKey(akey,i)
        asubkey = OpenKey(akey, subkey)
        """print subkey"""


        val=QueryValueEx(asubkey,"DisplayName")
        list1.append(val[0])
        if(len(val[0])==0):
            pass
        else:
            val2=QueryValueEx(asubkey,"DisplayVersion")       
            if(val2==""):
                list2.append("None")
                list3.append("None")
                continue

            else:
                list2.append(val2[0])
                val3=QueryValueEx(asubkey,"Publisher")                
                if(val3==""):
                    list3.append("None")

                else:
                    list3.append(val3[0])

print len(list1), len(list2), len(list3)
在这里,您在
列表1
中输入了一个值,但随后将其保留。我有一种预感,你是想检查和保释,而不是在
列表1
中添加任何内容

    list1.append(val[0])
    if(len(val[0])==0):
        pass