使用PYTHON获取所有windows注册表值及其路径

2024-09-24 22:31:07 发布

您现在位置:Python中文网/ 问答频道 /正文

id所做的是……。此代码在键和子键之间循环,并检查键是否有任何值(如果present打印值)。对于这段代码,指针或从HKEY U CURRENT U CONFIG移到System和CurrentControlSet,CurrentControlSet有一个值(我手动创建的),但是错误是

回溯(最近一次调用):系统文件“C:/Users/siva kumar/PycharmProjects/delete this/3.py”,第34行,在System\CurrentControlSet traverse_注册表树中(winreg.HKEY_当前配置,keypath)r“System\CurrentControlSet”文件“C:/Users/siva kumar/PycharmProjects/delete this/3.py”,第21行,在遍历注册表中树x=winreg.OpenKey(winreg.HKEY_当前配置,y,0,winreg.KEY_读取| winreg.KEY_WOW64_32KEY)%%('r',subkeypath)FileNotFoundError:[WinError 2]系统找不到指定的文件

import winreg

def subkeys(key):
    i = 0
    while True:
        try:
            subkey = winreg.EnumKey(key, i)
            yield subkey
            i+=1
        except WindowsError as e:
            break

def traverse_registry_tree(hkey, keypath, tabs=1):
    key = winreg.OpenKey(hkey, keypath, 0, winreg.KEY_READ)
    for subkeyname in subkeys(key):

        subkeypath = "%s\\%s" % (keypath, subkeyname)
        print(subkeypath)
        y='%s''"%s"' %('r',subkeypath)
        print(y)
        x = winreg.OpenKey(winreg.HKEY_CURRENT_CONFIG, y, 0, winreg.KEY_READ)

        z=winreg.QueryInfoKey(x)[1]
        print(z)

        if z!=0:
            for i in range(0, z):
                print(winreg.EnumValue(key, i))

    traverse_registry_tree(hkey, subkeypath, tabs+1)

keypath = r"System"
print("System")
traverse_registry_tree(winreg.HKEY_CURRENT_CONFIG, keypath)

Tags: keyconfigtreecurrentsystemregistryprinttraverse