Vérifier si une clé existe dans la base de registre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 23 200 fois - Téléchargée 36 fois


Contenu du snippet

J'ai réédité la fonction pour qu'elle soit plus sûre de fonctionner et surtout pour qu'elle ressemble plus à FileExists et FolderExists.
----------------------------------------------
Voici une fonction simple à inclure dans tout fichier VBS.
Si la clé existe, la fonction renverra True, sinon la False.

Source / Exemple :


'voici le code à insérer dans vos scripts :

Function RegExists(value)
On Error Resume Next
Set WS = CreateObject("WScript.Shell")
val = WS.RegRead(value)
If (Err.number = -2147024893) or (Err.number = -2147024894) Then
RegExists = False
Else
RegExists = True
End If
End Function

'voici un exemple :

If RegExists ("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32") Then
MsgBox "La valeur existe."
Else
MsgBox "La valeur n'existe pas."
End If 

'ça c'était pour vérifier l'existence de valeurs, pour vérifier l'existence d'une clé, il faudra rajouter un \ à la fin (la fonction regardera si la valeur par défaut de la clé existe donc si la clé existe), comme çà :

If RegExists ("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\") Then
MsgBox "La clé existe."
Else
MsgBox "La clé n'existe pas."
End If

Conclusion :


Je me suis dit que ça serait pratique vu qu'il existe des FileExists, FolderExists, mais pas ça.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
samedi 21 janvier 2006
Statut
Membre
Dernière intervention
20 décembre 2011

Bonjour,

merci pour le script qui fonctionne très bien.
Messages postés
19
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
29 juin 2004

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.
Messages postés
1
Date d'inscription
mercredi 15 janvier 2003
Statut
Membre
Dernière intervention
3 juillet 2003

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 !
Messages postés
3
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
26 juin 2003

Ca marche tres bien en VB6!!
Sympa ce tit code pe etre utile merci Mrx3 :)
Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

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.
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.