2011-03-19 103 views
0
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) 

它採用「DisplayName」「DisplayVersion」和「發佈者」。儘管如果該值已經存在,我已經給出了「無」值來輸入列表的長度不匹配。Python腳本枚舉註冊表

而且此代碼並沒有列舉註冊表的「卸載」子項的所有內容。

我做錯了什麼?

在此先感謝。

回答

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

在這裏你把一個值在list1,但保釋後。我有一個預感,你的意思是檢查和保釋沒有實際添加任何東西list1