Estou tentando escrever na chave de registro do Windows "SOFTWARE/Microsoft/DirectX/UserGpuPreferences" usando o módulo winreg do Python.
O nome da subchave precisa ser o caminho executável do python, que contém barras invertidas. No entanto, ao usar winreg.SetValue()
, isso adiciona uma árvore de chaves seguindo os componentes do caminho, em vez de uma única subchave cujo nome contém barras invertidas.
import winreg
path = ['SOFTWARE', 'Microsoft', 'DirectX', 'UserGpuPreferences']
registry = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER)
key = winreg.OpenKey(registry, '\\'.join(path), 0, winreg.KEY_WRITE)
sub_key = sys.executable
value = 'GpuPreference=2;'
winreg.SetValue(key, sub_key, winreg.REG_SZ, value)
Além disso, escapar das barras invertidas ( sys.executable.replace('\\', '\\\\')
) não altera o texto.
Existe alguma maneira de inserir esse valor de registro usando Python?
Funciona corretamente com
SetValueEx()