如何从注册表中获取REG_DWORD变量的值

3

我已经在Windows注册表中创建了一个变量(通过regedit),想要获取我的变量的值,该变量具有REG_DWORD类型。我使用以下代码来获取值:

def get_DWORD_val(): 
    from winreg import ConnectRegistry, HKEY_LOCAL_MACHINE, OpenKey, QueryValue, REG_EXPAND_SZ, REG_SZ
    try:
           root = ConnectRegistry(None, HKEY_LOCAL_MACHINE)
           print("---1")
           root_key = OpenKey(HKEY_LOCAL_MACHINE, r'SOFTWARE\Python', 0, KEY_READ)
           print("---2")
           [Pathname,regtype]=(QueryValue(root_key,"Ver_Tokenlog"))

    except WindowsError:
        return ["Error"]

    return Pathname

输出:

---1
---2
['Error']

抛出此错误:

winerror 2 the system cannot find the file specified

什么错误? - Maurice Meyer
无法返回路径名。 - user6223604
错误信息为:winerror 2,系统找不到指定的文件。 - user6223604
1个回答

2

I guess you meant QueryValueEx:

def get_DWORD_val(): 
    from winreg import ConnectRegistry, HKEY_LOCAL_MACHINE, OpenKey, QueryValueEx, QueryValue, REG_EXPAND_SZ, REG_SZ, KEY_READ

    root = ConnectRegistry(None, HKEY_LOCAL_MACHINE)
    print("---1")
    root_key = OpenKey(HKEY_LOCAL_MACHINE, r'SOFTWARE\Python', 0, KEY_READ)
    print("---2")
    Pathname,regtype = QueryValueEx(root_key, "Ver_Tokenlog")
    print(Pathname)
    print(regtype)


get_DWORD_val()

输出结果为:

---1
---2
256
4

注册表值:在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接