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

时间:2017-02-27 15:57:10

标签: python windows registry winreg

id做了什么........此代码在键和子键之间循环,并检查键是否具有任何值(如果存在打印值)。对于此代码,指针或从HKEY_CURRENT_CONFIG移动到System以及CurrentControlSet和CurrentControlSet的任何值都有一个值(我手动创建它)但是错误iam得到了

回溯(最近一次调用最后一次):系统文件“C:/ Users / siva kumar / PycharmProjects / delete this / 3.py”,第34行,在System \ CurrentControlSet中traverse_registry_tree(winreg.HKEY_CURRENT_CONFIG,keypath)r“系统\ CurrentControlSet“File”C:/ Users / siva kumar / PycharmProjects / delete this / 3.py“,第21行,在traverse_registry_tree x = winreg.OpenKey(winreg.HKEY_CURRENT_CONFIG,y,0,winreg.KEY_READ | 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)

0 个答案:

没有答案