python 读注册表 检测NET版本

from winreg import *
import re

def subRegKey(key, pattern, patchlist):
    # 个数
    count = QueryInfoKey(key)[0]
    for index in range(count):
        # 获取标题
        name = EnumKey(key, index)
        if name and name[0:1]=='v':
            print(name)
        result = patch.match(name)
        if result:
            patchlist.append(result.group(1))
        sub = OpenKey(key, name)
        subRegKey(sub, pattern, patchlist)
        CloseKey(sub)

if __name__ == '__main__':
    patchlist = []
    updates = 'SOFTWARE\Microsoft\\NET Framework Setup\\NDP'
    patch = re.compile('(v\d{1}\.\d{1})*')
    #patch = re.compile('(v\d{1})')
    #patch = re.compile('v*')
    key = OpenKey(HKEY_LOCAL_MACHINE, updates)
    subRegKey(key, patch, patchlist)
    #subRegKey(key,patchlist)
    print('Count: ' + str(len(patchlist)))
    for p in patchlist:
        if p:
            print(p)
    CloseKey(key)

 

posted @ 2021-01-10 21:06  myrj  阅读(137)  评论(0)    收藏  举报