Salut,

J'ai besoin de manipuler des cl�s registres sur Windows 7. Pour qu'un logiciel tiers puisse correctement fonctionner avec un module externe Python il faut que certaines cl�s soient pr�sentes dans la table de registre. Je parviens sans soucis � cr�er ces cl�s via le module winreg (voir ci-dessous). Mais je ne parviens pas du tout � les supprimer. Ce qui m'ennuie quelque peu.

Voici un bout de code permettant de cr�er trois cl�s (dont deux sous-cl�s, ce qui me semble �tre important � signaler):
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import sys
import winreg
 
VERSION = '3.5'
PATTERN_PATH = os.path.join('Software', 'Python', 'PythonCore')
PYTHON_PATH = os.path.dirname(sys.executable)
# Keys and values to register
KEYS = (
    (VERSION, None),
    (VERSION + '\\' + 'InstallPath', PYTHON_PATH),
    (VERSION + '\\' + 'InstallPath\\InstallGroup', 'Python %s' % VERSION),
    )
 
def register_local_python():
 
    root = winreg.HKEY_CURRENT_USER
 
    for path, value in KEYS:
        keypath = os.path.join(PATTERN_PATH, path)
        # Open or create the registry key
        try:
            key = winreg.OpenKey(root, keypath, 0, winreg.KEY_ALL_ACCESS)
        except:
            key = winreg.CreateKey(root, keypath)
        # Set the associated value to the key
        if value:
            winreg.SetValueEx(key, '', 0, winreg.REG_SZ, value)
        # Properly close the key
        winreg.CloseKey(key)
Quand je liste mes cl�s, c'est ok. Mais comment les supprimer? L'aide de winreg indique que la m�thode DeleteKey() doit �tre employ�e sur une cl� n'ayant pas d'enfants. Donc j'ai song� � lister r�cursivement toutes les cl�s et de les classer afin de les supprimer par "niveau" (un peu gal�re). Mais je me retrouve syst�matiquement avec le message d'erreur suivant:
[WinError 2] Le fichier sp�cifi� est introuvable
Je me suis rendu compte que j'avais ce soucis m�me en essayant d'effacer les cl�s de KEYS dans l'ordre inverse (vous noterez que ces cl�s sont rang�s dans le bon ordre).

J'ai tent� avec un DeleteValue sans succ�s non plus. Et mes recherches sur le sujet n'on rien donn�es de probant pour le moment. J'ai vu qu'il existait des wrappers plus ou moins suivis pour winreg, mais aucun ne semble proposer la suppression d'une cl� et de toutes ses sous-cl�s..

Est-ce que vous auriez des conseils � me donner?

J