IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ VBScriptConsultez toutes les FAQ

Nombre d'auteurs : 16, nombre de questions : 108, dernière mise à jour : 2 mars 2019  Ajouter une question

 


Cette FAQ VB Script est le fruit de la collaboration de l'équipe de rédaction et des membres du forum VB.

Aidez-nous à faire vivre cette FAQ en participant au forum Vos contributions VBScript.

Pour toutes questions ou tous problèmes concernant cette FAQ, vous pouvez contacter par MP ThierryAIM ou bbil.

L'équipe de rédaction de Developpez.com vous remercie pour votre participation passée et à venir.

SommaireVB ScriptManipuler la base de registre (7)
précédent sommaire suivant
 

L'objet WshShell possède trois méthodes permettant de manipuler la base de registre :

  • RegWrite : pour écrire dans la base de registre ;
  • RegRead : pour lire une entrée de la base de registre ;
  • RegDelete : pour effacer une clef ou sa valeur de la base de registre.


Ces trois méthodes utilisent comme premier paramètre le nom de la clé concernée. Pour, construire ce nom, des abréviations peuvent être utilisées :

Nom de clé racine Abréviation
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_CLASSES_ROOT HKCR
HKEY_USERS HKEY_USERS
HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG
 
Pour plus d'informations sur la base de registre, et quelques-unes des utilisations possible, voir la faq Windows XP :  La base de registre.

Mis à jour le 27 février 2014 SfJ5Rpw8

Pour écrire dans la base de registre, on utilise la méthode RegWrite de l'objet WshShell

la documentation Microsoft nous décrit la fonction ainsi :

object.RegWrite(strName, anyValue [,strType])
Arguments

object Objet WshShell.
strName Valeur de chaîne indiquant le nom de la clé, le nom de la valeur ou la valeur que vous voulez créer, ajouter ou modifier.
anyValue Nom de la nouvelle clé que vous voulez créer, nom de la valeur que vous voulez ajouter à une clé existante ou nouvelle valeur que vous voulez assigner à un nom de valeur existant.
strType Facultatif. Valeur de chaîne indiquant le type de données de la valeur

Le paramètre facultatif strType permet d'indiquer le type données :

Nom de clé racine strType
Chaîne REG_SZ
Chaîne REG_EXPAND_SZ
Nombre entier REG_DWORD
Nombre entier REG_BINARY
  

Code vb : Sélectionner tout
1
2
3
Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.RegWrite "HKCU\Software\dvp-faqvbs\montest",now

La fonction now renvoie ici la date et l'heure courante sous la forme d'une chaîne de caractères.

Mis à jour le 27 février 2014 SfJ5Rpw8

La Méthode RegRead permet de lire la base de registre. Elle ne prend qu'un argument : le nom de la clé ( qui peu comporter des abréviations ..)

Code vb : Sélectionner tout
1
2
3
Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell") 
msgbox WshShell.RegRead ("HKCU\Software\dvp-faqvbs\montest")

Mis à jour le 5 mai 2008 SfJ5Rpw8

La méthode RegDelete permet d'effacer une entrée de la base de registre. Elle ne prend qu'un argument : le nom de la clé ( qui peu comporter des abréviations ..)

Code vb : Sélectionner tout
1
2
3
Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.RegDelete ("HKCU\Software\dvp-faqvbs\montest")


Cette même méthode permet aussi d'effacer une clé (en terminant le nom de la clé par un \):

Code vb : Sélectionner tout
1
2
3
Dim WshShell 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.RegDelete ("HKCU\Software\dvp-faqvbs\")

Mis à jour le 5 mai 2008 SfJ5Rpw8

Le principe repose sur la création de plusieurs clés dans la base de registre. Une des méthodes est l'utilisation du Windows Script Host Object Model.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim MaCle  
  
Set MaCle = CreateObject("WScript.Shell") 
'nom de votre type de fichier 
MaCle.RegWrite "HKEY_CLASSES_ROOT\Test Ext\", "Test Ext", "REG_SZ" 
'commande a exécuter pour ouvrir les fichiers de ce type 
MaCle.RegWrite "HKEY_CLASSES_ROOT\Test Ext\shell\open\command\", "C:\jmarc\FAQ\TestExt.exe %1", "REG_SZ" 
'icone à utiliser pour représenter les fichiers de ce type, ici la troisième icone contenue dans TestExt.exe 
'(la première icone a l'index 0) 
MaCle.RegWrite "HKEY_CLASSES_ROOT\Test Ext\DefaultIcon\", "C:\jmarc\FAQ\TestExt.exe,2", "REG_SZ" 
  
'extension correspondant à ce type de fichier 
MaCle.RegWrite "HKEY_CLASSES_ROOT\.jmr\", "Test Ext", "REG_SZ"

Suite à l'application de ce script, tout fichier ayant une extension ".jmr" sera ouvert avec le programme TestExt.exe.

Mis à jour le 4 septembre 2003 bidou Khorne

Pour Windows 2000 et supérieur :

Cette astuce permet de désactiver ou d'activer le gestionnaire des tâches à partir du code de votre programme et donc, d'inhiber la séquence de touches Ctrl-Alt-Suppr.

Lorsque le gestionnaire est désactivé, le système renvoie un message d'avertissement (à utiliser avec précaution) :

Désactiver :

Code vb : Sélectionner tout
1
2
3
Set WshShell = CreateObject("WScript.Shell") 
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr", "1" 
Set WshShell = Nothing

Activer :

Code vb : Sélectionner tout
1
2
3
Set WshShell = CreateObject("WScript.Shell") 
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr", "" 
Set WshShell = Nothing

Mis à jour le 2 mai 2006 Khorne

En utilisant Regedit.exe et en créant une clé spécifique :

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 Option Explicit 
  
 Dim WS, CurKey, Path, tmp, cmp 
 Const SpecKey = "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Lastkey" 
  
 If GetLocale = 1033 Then cmp = "My Computer\" 
 If GetLocale = 1036 Then cmp = "Poste de travail\" 
  
 Set WS = CreateObject("WScript.Shell") 
 Path = InputBox("Entrez le chemin de clé à ouvrir", "Ouvrir une clé du registre") 
 If Path = "" Then 
	MsgBox "Opération non effectuée !", vbExclamation, "Opération annulée" 
 Else 
	tmp = Mid(Path, InStr(1,Path,"\")) 
	CurKey = VerifyEntry(Path) & tmp  
	CurKey = cmp & CurKey ' Selon la version de Windows (FR ou EN) My Computer ou Poste de travail 
     	WS.RegWrite SpecKey, CurKey, "REG_SZ" 
	WS.Run "Regedit.exe", 1, True 
 End If 
  ' ================== 
 Function VerifyEntry(strIn)  
   ' Fonction de transformation des noms abrégés des racines en noms longs 
   ' pour pouvoir l'ouvrir, sinon l'opération échouera 
   Dim Ret 
   strIn = Left(strIn,InStr(1,strIn,"\") - 1) 
   Select Case UCase(strIn) 
      Case "HKLM" : Ret = "HKEY_LOCAL_MACHINE" 
      Case "HKCU" : Ret = "HKEY_CURRENT_USER" 
      Case "HKCR" : Ret = "HKEY_CLASSES_ROOT" 
      Case "HKUS" : Ret = "HKEY_USERS" 
      Case "HKCC" : Ret = "HKEY_CURRENT_CONFIG" 
      Case "HKEY_LOCAL_MACHINE", "HKEY_CURRENT_USER", "HKEY_CLASSES_ROOT", "HKEY_USERS", "HKEY_CURRENT_CONFIG" : Ret = strIn 
      Case Else : MsgBox "Erreur de données entrées !" : Wscript.Quit 0 
   End Select 
  VerifyEntry = Ret 
End Function

Mis à jour le 12 mars 2014 l_autodidacte

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.