FAQ PythonConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 188, dernière mise à jour : 2 septembre 2018 

 
OuvrirSommaireBase de registre sous Windows

Le module _winreg permet d'accéder aux bases de registre sous Windows. Vous trouverez dans la Python Library reference l'aide suffisante pour manipuler la base de registre.

Créé le 10 octobre 2005  par Guigui_

Pour créer une nouvelle clé au registre on utilise la méthode _winreg.CreateKey( key, sub_key)key est une clé déjà ouverte ou une constante HKEY_* prédéfinie et sub_key représente la sous-clé qui sera créée. Cette fonction retourne le handle de la clé ouverte.

 
Sélectionnez

import _winreg
key = _winreg.CreateKey(_winreg.HKEY_CURRENT_USER, 'Software\\MonProg')
Créé le 10 octobre 2005  par Guigui_

Pour supprimer une clé au registre on utilise la méthode _winreg.DeleteKey( key, sub_key)key est une clé déjà ouverte ou une constante HKEY_* prédéfinie et sub_key représente la sous-clé qui sera supprimée. Cette fonction ne peut pas supprimer une clé qui possède des sous-clés

 
Sélectionnez

import _winreg
_winreg.DeleteKey(_winreg.HKEY_CURRENT_USER, 'Software\\MonProg')
Créé le 11 octobre 2005  par Guigui_

Pour ouvrir une clé, on utilise la fonction _winreg.OpenKey( key, sub_key[, res = 0][, sam = KEY_READ])key est une clé déjà ouverte où une constante du type HREF_*, sub_key, la sous-clé à ouvrir, res un entier qui doit rester à 0 et sam un entier qui définit le masque d'accès. La constante KEY_SET_VALUE permettra de modifier la clé en question alors que KEY_READ ne permettra d'accéder à cette clé qu'en lecture seule. Cette fonction retourne le handle de la clé.

Pour lire une valeur, on utilise la fonction _winreg.QueryValueEx( key, value_name)key est une clé déjà ouverte et value_name le nom de la valeur à lire. Cette fonction retourne un couple où le premier élément est la valeur de la donnée et le deuxième un entier donnant le type de la donnée.

 
Sélectionnez

import _winreg
key = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER, 'Software\\MonProg',0, _winreg.KEY_READ)
(valeur,typevaleur) = _winreg.QueryValueEx(key,'MaDonnee')
_winreg.CloseKey(key)
print valeur, typevaleur

Pour modifier une valeur, on applique la fonction SetValueEx( key, value_name, reserved, type, value) sur la key précédente où value_name représente le nom de la valeur, reserved peut être n'importe quoi (c'est toujours 0 qui est transmis), type est un entier (dont les valeurs possibles sont données dans le tableau ci-dessous) représentant le type de la donnée et value la valeur de la donnée en question.

 
Sélectionnez

import _winreg
key = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER, 'Software\\MonProg',0, _winreg.KEY_SET_VALUE)
_winreg.SetValueEx(key, 'MaDonnee', 0, _winreg.REG_DWORD, 5)
_winreg.CloseKey(key)
Constante Description
REG_BINARY Donnée binaire de n'importe quel forme
REG_DWORD Un nombre sur 32 bits
REG_DWORD_LITTLE_ENDIAN Un nombre sur 32 bits au format little-endian
REG_DWORD_BIG_ENDIAN Un nombre sur 32 bits au format big-endian
REG_EXPAND_SZ String référençant une variable d'environnement
REG_LINK Un lien symbolique
REG_MULTI_SZ Une séquence de string
REG_NONE Type sans valeur définie
REG_RESOURCE_LIST Une liste de ressources
REG_SZ Un string


Pour supprimer une valeur, on exécute la fonction _winreg.DeleteValue( key, value)

 
Sélectionnez

import _winreg
key = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER, 'Software\\MonProg',0, _winreg.KEY_SET_VALUE)
_winreg.DeleteKey(key, 'MaDonnee')
_winreg.CloseKey(key)
Créé le 10 octobre 2005  par Guigui_
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005-2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.