Как получить значение в реестре?

Как получить код текущего системного языка windows 10, попробовал так

from winreg import *

aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)
aKey = OpenKey(aReg, r"SYSTEM\CurrentControlSet\Control\Nls\Language")
for i in range(1024):
    try:
        keyname = EnumKey(aKey, i)
        asubkey = OpenKey(aKey, keyname)
        val = QueryValueEx(asubkey, "DisplayName")
        print(val)
    except WindowsError:
        break

Одни ошибки, хотя если искать по пути SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, выводит значение в реестре.Пробовал вводить InstallLanguage вместо DisplayName не помогло.


Ответы (1 шт):

Автор решения: Develop

Если кому-то будет нужно, то сделал так

from winreg import *

aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)
aKey = OpenKey(aReg, r"SYSTEM\CurrentControlSet\Control\Nls\Language")
keyname = EnumValue(aKey, 2)
print(keyname[1])

EnumValue - функция которая получает значение поля реестра по индексу - второе значение(2)

keyname - словарь в котором 3 значения:

  1. Имя поля
  2. Значение
  3. Тип данных

https://docs.python.org/3/library/winreg.html#exception-changed

→ Ссылка