Python _winreg

JunKy Ripper Messages postés 211 Date d'inscription   Statut Membre Dernière intervention   -  
 sebsauvage -
Bon j'ai un petit problème d'utilisation du module _winreg.
Je n'arrive pas a m'en servir. Voici le code.

import _winreg

regDB = _winreg.ConnectRegistry (None, _winreg.HKEY_LOCAL_MACHINE)
try:
regKey = _winreg.OpenKey (regDB, "SOFTWARE\...")
dllPath = _winreg.QueryValueEx (regKey, "home")

except EnvironmentError:
print "erreur"

Bien sur les ... c'est la suite de ma clef.
Si qq1 voit d'ou vien le problème .... Ca fait bien 2h que je suis dessus.
Merci !

2 réponses

JunKy Ripper Messages postés 211 Date d'inscription   Statut Membre Dernière intervention   23
 
C'est bon j'ai trouvé si il y en a que ca interrese.

regKey = _winreg.OpenKey (_winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\...")
dllPath = _winreg.QueryValueEx (regKey, "clé")
0
sebsauvage
 
Petite remarque en passant:

A propos, il est préférable d'utiliser RegOpenKeyEx plutôt que OpenKey.

(Sous NT/2000/XP, l'utilisateur peut très bien avoir accès à une partie de la base de registre en lecture seule, or le OpenKey ouvre par défaut en lecture/écriture => risque d'échec).

Je préfère ouvrir explicitement en lecture seule:

import win32api, win32con
regkey = win32api.RegOpenKeyEx( win32con.HKEY_LOCAL_MACHINE, 'SOFTWARE\\...', 0, win32con.KEY_READ )
(value,keytype) = win32api.RegQueryValueEx(regkey, 'clé' )

ça évite de faire un script sous 9x ou NT (en admin) qui va ensuite échouer sur les postes utilisateur.
0