Python _winreg

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

  1. 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é")
    1. 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.