Windows
Scripts
VBScript
Lire et écrire dans le registre
Pour : Windows
On va vous expliquer à travers divers exemples comment faire pour lire, extraire des données et écrire, modifier des clés dans le registre.
1- Lecture d'une clé de registre (RegRead)
On va vous monter via le script VBS ci-dessous comment faire pour lire une clé de registre et éffectuer une action selon les données de la clé.
Le script VBS va exécuter une action si le contenu de la clé est égal à YES sinon une autre action sera exécuté.
Pour simplifier la compréhension du script celui-ci à été commenté avec '***.
Script VBS:
Titre = "Lecture Clé de registre" '*** Déclaration des variables Dim ObjetRegedit '*** Permet de continuer le script même s'il y a une erreur On Error Resume Next '*** Definition du contenu de la variable Set ObjetRegedit = CreateObject("WScript.Shell") '*** Definition du contenu de la variable "CleRegistre" CleRegistre = ObjetRegedit.RegRead("HKLM\Software\test\cedric") '*** Lecture de la clé de registre et si la valeur est égale à "YES" '*** le message "La clé est égale à YES" sera affiché sinon se sera "La clé est égale à NO". If CleRegistre = "yes" then msgbox "La clé est égale à YES" else msgbox "La clé est égale à NO" End If On Error GoTo 0 '*** Destruction des objets Set ObjetRegedit = Nothing WScript.Quit
Titre = "Ecrire Clé de registre" '*** Déclaration des variables Dim ObjetRegedit '*** Permet de continuer le script même s'il y a une erreur On Error Resume Next '*** Definition du contenu de la variable Set ObjetRegedit = CreateObject("WScript.Shell") '*** Definition du contenu de la variable "CleRegistre" CleRegistre = "HKLM\Software\test\cedric" '*** Ecriture de la clé de registre avec ces données et son type "REG_SZ". ObjetRegedit.RegWrite CleRegistre, "Données de la clé ICI", "REG_SZ" WScript.Echo "Modification registre éffectué" '*** Destruction des objets Set ObjetRegedit = Nothing WScript.Quit
Titre = "Récupérer contenu Clé de registre" '*** Déclaration des variables Dim ObjetRegedit '*** Permet de continuer le script même s'il y a une erreur On Error Resume Next '*** Definition du contenu de la variable set ObjetRegedit = CreateObject("WScript.Shell" ) '*** Definition du contenu de la variable "CleRegistre" CleRegistre = "HKLM\Software\test\cedric" '*** Lecture du contenu de la clé de registre ContenuCle = ObjetRegedit.RegRead(CleRegistre) '*** Pour afficher le contenu de la clé si elle existe msgbox "Cle de Registre : " & ContenuCle '*** Destruction des objets Set ObjetRegedit = Nothing WScript.Quit
Titre = "Vérifier presence Clé de registre" '*** Déclaration des variables Dim ObjetRegedit '*** Permet de continuer le script même s'il y a une erreur On Error Resume Next '*** Definition du contenu de la variable set ObjetRegedit = CreateObject("WScript.Shell" ) '*** Definition du contenu de la variable "CleRegistre" CleRegistre = "HKLM\Software\test\cedric" '*** Création de la fonction "ExisteCle" '*** Pour vérifier la presence de la clé dans le registre Function ExisteCle(cle) On Error Resume Next Dim test Set test = WScript.CreateObject("WScript.Shell") test.RegRead cle ExisteCle = (Err = 0) End function '*** Si la clé de registre existe, son contenu sera affiché. '*** Mais si elle n'existe pas, un message sera affiché pour indiqué que la clé n'existe pas. If ExisteCle(CleRegistre) = true then ContenuCle = ObjetRegedit.RegRead(CleRegistre) Else ContenuCle = "La clé registre n'existe pas!!!" End if '*** Pour afficher le contenu de la clé si elle existe msgbox "Cle de Registre : " & ContenuCle '*** Destruction des objets Set ObjetRegedit = Nothing WScript.Quit
Titre = "Supprimer Clé de registre" '*** Déclaration des variables Dim ObjetRegedit '*** Permet de continuer le script même s'il y a une erreur On Error Resume Next '*** Definition du contenu de la variable set ObjetRegedit = CreateObject("WScript.Shell" ) '*** Definition du contenu de la variable "CleRegistre" CleRegistre = "HKLM\Software\test\cedric" '*** Suppression de la clé de registre Wshell.RegDelete CleRegistre WScript.Echo "Suppression de la clé de registre" '*** Destruction des objets Set ObjetRegedit = Nothing WScript.Quit