Как получить значение переменной REG_DWORD из реестра - PullRequest
2 голосов
/ 05 марта 2020

Я создал переменную в реестре 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

1 Ответ

2 голосов
/ 05 марта 2020

Полагаю, вы имели в виду 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

Значения Reg: enter image description here

...