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



2- Ecrire une clé de registre (RegWrite)
Voici comment créer une clé de registre ou modifier son contenu avec "RegWrite".
On a surligné en rouge les trois éléments concernant la clé de registre qui va être écrite, c'est a dire:
La clé de registre: "HKLM\Software\test\cedric"
Le contenu de la clé: "Données de la clé ICI"
Le type de clé: "REG_SZ"


Script VBS:
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



3- Récupérer le contenu d'une clé de registre
On va récupérer le contenu de la clé afin de réutiliser ces données pour effectuer diverse action.
Dans notre exemple on affichera les données récupéré de la clé dans une fenêtre avec "msgbox".


Script VBS:
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



4- Vérifier la présence d'une Clé de registre
On va créer une fonction "ExisteCle" pour vérifier si la clé existe même si elle est vide.
Puis on va faire une condition, si la clé existe son contenu sera enregistré dans la variable "ContenuCle".
Dans le cas contraire se sera "La clé registre n'existe pas!!!" qui sera enregistré.
Et pour finir on affichera avec "msgbox" on affichera le contenu de la variable "ContenuCle".


Script VBS:
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



Par O.Cédric
Sur www.octetmalin.net

Article publié le:
24/03/2013 20:05





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.