в реестре не изменяется значение, а создается новая директория

Наверное это довольно глупая ошибка, но я 2 битых дня смотрю на это и не понимаю в чем она. Программа должна заменять значение в уже созданном реестре, но вместо этого создает новую папку. Вот код:

import winreg


color = '10 10 10'

change_way = r'Control Panel\Colors'

key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, change_way)
winreg.SetValue(key, 'Hilight', winreg.REG_SZ, color)
winreg.CloseKey(key)

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

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

Используйте winreg.SetValueEx:

color = '10 10 10'

change_way = r'Control Panel\Colors'

key = winreg.OpenKey(
    winreg.HKEY_CURRENT_USER,
    change_way,
    access=winreg.KEY_SET_VALUE # <--
)
winreg.SetValueEx( # <--
    key,
    'Hilight',
    0, # <--
    winreg.REG_SZ,
    color
)
winreg.CloseKey(key)

А еще, можно использовать with, чтобы не забыть закрыть ключ реестра.

with winreg.OpenKey(winreg.HKEY_CURRENT_USER, change_way, access=winreg.KEY_SET_VALUE) as key:
    winreg.SetValueEx(key, 'Hilight', 0, winreg.REG_SZ, color)
→ Ссылка