一、使用Python+winreg读取Windows注册表中所有的键和值
import winreg
def print_all_subkeys(key):
i = 0
while True:
try:
# 获取key的第i个子健
subkey = winreg.EnumKey(key, i)
print(subkey)
# 打开子健
subkey_handle = winreg.OpenKey(key, subkey)
# 打印子健中的所有值
print_all_values(subkey_handle)
# 打印子健中的所有子健
print_all_subkeys(subkey_handle)
i += 1
except WindowsError as e:
break
def print_all_values(key):
i = 0
while True:
try:
# 获取key中第i个值
name, value, type_ = winreg.EnumValue(key, i)
print(f'{name} = {value}')
i += 1
except WindowsError as e:
break
if __name__ == "__main__":
path = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
# 打开目录
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path)
# 打印所有的子健和值
print_all_subkeys(key)
二、winreg.EnumKey参数解析:
1、name, value, type = winreg.EnumKey(key, index)
1、key:一个已经显示的键,或者预定义的HKEY_*常量之一
2、index:是一个整数,用来表示所获取键的索引
2、返回值:包含3个元素的元组
1. name:键的名称
2. value:键的数据
3. type:键的类型