Python _winreg

Fermé
JunKy Ripper Messages postés 211 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 6 mai 2002 - 10 avril 2002 à 12:41
 sebsauvage - 28 mai 2002 à 18:07
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 mardi 18 décembre 2001 Statut Membre Dernière intervention 6 mai 2002 23
11 avril 2002 à 10:24
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
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