Поиск значений и подразделов во всем реестре
Пытаюсь написать программу, которая будет проходиться по всему реестру(2 раздела, т.к. остальные - это ссылки на подразделы этих двух) и выводить найденные по маске значения или подразделы.
from winreg import *
import re
hkeys = (
HKEY_LOCAL_MACHINE,
HKEY_USERS
)
regtype2text = {
'REG_SZ': REG_SZ,
'REG_DWORD': REG_DWORD,
'REG_BINARY': REG_BINARY,
'REG_DWORD_LITTLE_ENDIAN': REG_DWORD_LITTLE_ENDIAN,
'REG_DWORD_BIG_ENDIAN': REG_DWORD_BIG_ENDIAN,
'REG_EXPAND_SZ': REG_EXPAND_SZ,
'REG_LINK': REG_LINK,
'REG_MULTI_SZ': REG_MULTI_SZ,
'REG_NONE': REG_NONE,
'REG_QWORD': REG_QWORD,
'REG_QWORD_LITTLE_ENDIAN': REG_QWORD_LITTLE_ENDIAN
}
mask_to_find = input('Введите маску для поиска: ').replace('*', '.')
for k in hkeys:
with OpenKeyEx(k, None, 0, access=KEY_ALL_ACCESS) as key:
query = QueryInfoKey(key)
if query[1] != 0:
list_vals = [EnumValue(key, i) for i in range(query[1])]
if query[0] != 0:
for i in range(query[0]):
list_subs = [EnumKey(key, i) for i in range(query[0])]
pass
Дальше что-то не могу придумать, я думаю нужна рекурсия. Если у кого-то есть идеи, помогите, пожалуйста.