Comment supprimer une clé registre avec tous ses sous clés ?

Résolu
111z Messages postés 17 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 22 mars 2007 - 7 déc. 2006 à 00:42
111z Messages postés 17 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 22 mars 2007 - 7 déc. 2006 à 23:55
Comment supprimer une clé registre avec tous ses sous clés ?
Depuis des heures j'essaye des combinaisons ,mais tjrs machin erreur par ici par la , j'ai fini par chopper la migraine .
Merci d'avance.

11 réponses

Utilisateur anonyme
7 déc. 2006 à 21:01
111Z, si tu veux un exemple, t'as qu'a voir ma source qui le fait justeent. Et je pense pas que ce soit la seul.
Voir la méthode DeleteKey:

"Fonction pour supprimer une clé du registre avec toutes celle qui s'y trouve dedans"


C'est pas ce que tu veux ca ? hein ?




__________
Kenji
3
111z Messages postés 17 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 22 mars 2007
7 déc. 2006 à 23:51
EHH Je viens de trouver ta class CHARLES, c'est ce que je cherchais en faite , au moin je me suis pas tromper sur le principe


Sympa aussi ton GUN

http://www.vbfrance.com/codes/CLASS-POUR-REGISTRE_26277.aspx

Public
Function
DeleteKey(ByVal hKey As eHKey, ByVal Section As
String
)


<ol>
<li>    
On
Error
Resume
Next
</li>
<li>    
Dim
KeyValue As Long
</li>
<li>    
Dim
SubKey() As
String
</li>
<li>    
Call
ReadRegistryKeys(hKey, Section, SubKey) <samp>'// On cherhce les clés contenu dans la clé</samp></li>
<li>    
Dim
i As Integer
</li>
<li>    
For
i = 0 To
UBound
(SubKey) <samp>'// Boucle sur toutes les clés qui sont dans la clé</samp></li>
<li>      
If
Err.Number = 9
Then
Exit
For
<samp>'// Si li n'y a pas de clé on quitte la boucle</samp></li>
<li>      
Call
DeleteKey(hKey, Section & <var>""</var> & SubKey(i)) <samp>'// Rapelle la fonction pour supprimer les clés qui sont dans les clés trouvé</samp></li>
<li>      Err.
Clear
<samp>'// Efface les erreurs</samp></li>
<li>      
Call
RegOpenKeyEx(hKey, vbNullChar, 0&, KEY_ALL_ACCESS, KeyValue) <samp>'// Ouverture</samp></li>
<li>      
Call
RegDeleteKey(KeyValue, Section & <var>""</var> & SubKey(i)) <samp>'// Supprime la clé</samp></li>
<li>      
Call
RegCloseKey(KeyValue) <samp>'// Fermeture</samp></li>
<li>    
Next
i
</li>
<li>    
Call
RegOpenKeyEx(hKey, vbNullChar, 0&, KEY_ALL_ACCESS, KeyValue) <samp>'// Ouverture</samp></li>
<li>    
Call
RegDeleteKey(KeyValue, Section) <samp>'// Supprime la clé du début</samp></li>
<li>    
Call
RegCloseKey(KeyValue) <samp>'// Fermeture</samp></li>
<li>    
End
Function
<samp>' _</samp></li>
</ol>
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 déc. 2006 à 00:56
Salut,

essaie un truc de ce genre là :

Option Explicit

Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long

Public Sub SupprimerClé(Raçine As Long, NomClé As String)
    Dim Résultat As Long
Résultat =  RegDeleteKey(Raçine, NomClé)
End Sub

Sub Exemple()
    Call SupprimerClé(HKEY_CURRENT_USER, "Software\tata\titi")
End Sub


~ <small> [code.aspx?ID=39466 Mortalino] </small>
~

@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
111z Messages postés 17 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 22 mars 2007
7 déc. 2006 à 01:40
Non ça marche pas , il est impossible de supprimer une clé qui contient des sous clés.
je crois qu'il faudra scaner les clés et les sous clés et le sous sous clés etc ... puis les supprimer une par une, c'est comment faire ça que
je cherche en faites.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
7 déc. 2006 à 09:06
Salut,

Regarde sur les nombreuses sources qui font la gestion du registre. C'est pas ce qui manque.





__________
Kenji
0
111z Messages postés 17 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 22 mars 2007
7 déc. 2006 à 13:43
Charles
Je cherche pas à lire/écrire/supprimer une clé , je cherche à supprimer une clé avec tous les sous clés et les sous sous clés.
Si tu as deja tomber sur une source qui fait ça , je serais ravi si tu me donne le lien.


 


Merci
0
111z Messages postés 17 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 22 mars 2007
7 déc. 2006 à 17:37
Apparement va falloir que que je me creuse la tete pour trouver moi meme
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 déc. 2006 à 20:19
Ami 111z

Tu es ici sur le forum VB.

Ce qu'il convient de faire, dans un tel cas de figure, nécessite moins la connaissance de VB que celle de Windows.

Tu vas voir :

Si tu connais windows, tu sais qu'il est possible d'exporter une clé (avec ses sous-clés) de la base de registre, à partir de Regedit.

Tu sais également que tu obtiens alors un fichier .reg, que tu peux manipuler...

Alors :

Intéresse-toi à donc Reg.exe (ce n'est pas du VB).
Il ne te restera ensuite qu'à exécuter tes commandes depuis VB....

A toi de jouer (après avoir bûché Reg.exe...)
Amitiés
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 déc. 2006 à 22:47
Je t'ai filé RegDeleteKey, beh voici RegDeleteValue :

Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long

~ <small>[code.aspx?ID=39466 Mortalino]</small>
~

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
111z Messages postés 17 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 22 mars 2007
7 déc. 2006 à 23:30
jmfmarques et mortalino  c'est trop facile comme reponse ,,à ce que je vois je me suis pas fait comprendre une fois de plus.
ce que je veux c'est une fonction ou sub du genre RegDeleteTree   (disponibledans la lib Lib "advapi32.dll" de Windows Vista).
je veux supprimer une clé dont Les noms et le nombre des sous clé n'est pas fixe , ça peux changer d'une machine à l'autre.
J'ai penser à scaner la clé en question et de stocker les chemins des sous clé dans un tableau puis les supprimer avec une boucle , c le principe , je vais m'y mettre
dés que je sentirai la force.
que la force soit avec moi
0
111z Messages postés 17 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 22 mars 2007
7 déc. 2006 à 23:55
Merci à toi Charles et à tous qui ont pris la peine de me repondre.
0
Rejoignez-nous