utilisant regedit.exe J'ai créé manuellement une clé dans le registre appelé
HKEY_CURRENT_USER/00_Just_a_Test_Key
et créé deux valeurs dword
dword_test_1 et dword_test_2
Je suis en train d'écrire des valeurs dans ces deux touches en utilisant le programme suivantPython 2.6 - Je ne peux pas écrire dans registre dwords supérieur à l'aide 0x7fffffff _winreg.SetValueEx()
import _winreg
aReg = _winreg.ConnectRegistry(None,_winreg.HKEY_CURRENT_USER)
aKey = _winreg.OpenKey(aReg, r"00_Just_a_Test_Key", 0, _winreg.KEY_WRITE)
_winreg.SetValueEx(aKey,"dword_test_1",0, _winreg.REG_DWORD, 0x0edcba98)
_winreg.SetValueEx(aKey,"dword_test_2",0, _winreg.REG_DWORD, 0xfedcba98)
_winreg.CloseKey(aKey)
_winreg.CloseKey(aReg)
Je peux écrire dans la première clé, dword_test_1, mais lorsque je tente d'écrire dans le deuxième, je me le message suivant
Traceback (most recent call last):
File "D:/src/registry/question.py", line 7, in <module>
_winreg.SetValueEx(aKey,"dword_test_2",0, _winreg.REG_DWORD, 0xfedcba98)
ValueError: Could not convert the data to the specified type.
Comment puis-je écrire la deuxième valeur 0xfedcba98, ou toute valeur supérieure à 0x7fffffff
en tant que valeur de dword?
Au départ, j'été l'écriture de script pour changer le « Mes documents » icône ou désactiver en écrivant « 0xf0500174 » pour cacher ou « 0xf0400174 » pour afficher l'icône dans [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CLSID {450D8FBA-AD25-11D0-98A8-0800361B1103} \ ShellFolder]
Vous devez déposer un bug. Cet appel d'API doit accepter des valeurs comprises entre [-2147483648,4294967295]. Les valeurs DWORD du registre sont des entiers 32 bits non signés et l'acceptation de valeurs négatives l'empêchera de casser le code existant. http://bugs.python.org/ –