VÉRIFIER SI UNE CLÉ EXISTE DANS LA BASE DE REGISTRE

ThunderPsycho Messages postés 180 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 4 février 2007 - 13 juin 2003 à 07:31
denispixies Messages postés 1 Date d'inscription samedi 21 janvier 2006 Statut Membre Dernière intervention 20 décembre 2011 - 20 déc. 2011 à 14:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/7477-verifier-si-une-cle-existe-dans-la-base-de-registre

denispixies Messages postés 1 Date d'inscription samedi 21 janvier 2006 Statut Membre Dernière intervention 20 décembre 2011
20 déc. 2011 à 14:33
Bonjour,

merci pour le script qui fonctionne très bien.
shadow575 Messages postés 19 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 29 juin 2004
27 juin 2004 à 16:58
je suis peut être idiot mais, c'est quoi une clé ? et une base de registre ?

je suis dsl mais je débute et je connais pas trop.
cs_NiKo63 Messages postés 1 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 3 juillet 2003
3 juil. 2003 à 10:30
Nikel, en effet, cela fonctionne sous VB6, bon ok on peut 'améliorer" la fonction mais au moins le résultat est là, on sait si une clef existe ou pas...

Merci !
cs_TFC Messages postés 3 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 26 juin 2003
26 juin 2003 à 11:45
Ca marche tres bien en VB6!!
Sympa ce tit code pe etre utile merci Mrx3 :)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
14 juin 2003 à 09:55
Hé bien je ne sais pas pourquoi chez moi ça ne marche pas, ce qui est sûr c'est que Google me dit que je ne suis pas le seul !
Pour les contrôles ActiveX, il suffit de faire CreateObject : s'il n'y a pas d'erreur, c'est que le contrôle est bien enregistré : c'est très simple, mais cela oblige à instancier le contrôle effectivement.
ThunderPsycho Messages postés 180 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 4 février 2007
13 juin 2003 à 13:06
ah si je t'assure
m'en suis encore servi ce matin
moi je l'utilise sans fonction, mais le principe c le meme, lire une cle et gerer l'erreur avec le On error resume next...
ThunderPsycho Messages postés 180 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 4 février 2007
13 juin 2003 à 13:06
ah si je t'assure
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
13 juin 2003 à 12:54
Ca marche peut être en VBScript, mais pas en VB6 (en tout cas pas en VBA : je teste dans un module Access 97)
ThunderPsycho Messages postés 180 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 4 février 2007
13 juin 2003 à 12:47
Houla les gars mais kestu racontes Patrice99 c juste du Windows Host Scripting Object et ca marche très bien, je l'utilisais deja pas mal...
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
13 juin 2003 à 12:11
Non ! Microsoft.Win32.RegistryKey est une classe bien pratique du framework .NET, pas de VB6 hélas ! mais je suis sûr que quelqu'un va trouver l'équivalent de la fonction en VB6.
Mrx3 Messages postés 24 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 2 janvier 2007
13 juin 2003 à 11:02
Mais ça serait pas du Visual Basic ça ?
Mrx3 Messages postés 24 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 2 janvier 2007
13 juin 2003 à 11:01
Mais ça serait pas du Visual Basic ça ?
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
13 juin 2003 à 09:40
Ton exemple ne marche pas. Une recherche avec Google montre que ce n'est pas aussi simple, car on ne peut pas distinguer si une clé existe ou bien si elle n'a pas de valeur par défaut, et même dans ce cas, ça ne marche pas pour savoir par exemple si un controle activeX est enregistré ou pas. Je n'ai toujours pas trouvé la solution. Pourtant, avec VB.NET c'est très facile :
Public Shared Function bCleRegistreExiste(ByVal sCle$) As Boolean

' Vérifier si une clé existe dans la base de registre
' c'est utile pour savoir si un contrôle ActiveX est enregistré

Dim sValCle$
Try
' This call goes to the Catch block if the registry key is not set.
Dim myRegKey As Microsoft.Win32.RegistryKey = _
Microsoft.Win32.Registry.ClassesRoot
myRegKey = myRegKey.OpenSubKey(sCle)
Dim sSousCle$ = "" ' Sous-clé par défaut
Dim oValue As Object = myRegKey.GetValue(sSousCle)
sValCle = CStr(oValue)
bCleRegistreExiste = True ' On peut lire cette clé, donc elle existe
Catch
sValCle = ""
End Try
'MsgBox(sValCle)
Exit Function

End Function

Si quelqu'un trouve la solution pour VB6, je suis preneur !
ThunderPsycho Messages postés 180 Date d'inscription lundi 3 juin 2002 Statut Membre Dernière intervention 4 février 2007
13 juin 2003 à 07:31
La variable 'rtrn' n'est pas très utile ici...
J'aime bien l'exemple d'utilisation de la fonction ;o)))
Rejoignez-nous