Accès a la base de registre sans api ! v2

Contenu du snippet

J'ai fait ça avec l'exemple en Vbs de windows ce qui donne un module reg.bas à ajouter au projet et de mettre ce code dedans.

Source / Exemple :


'***********************************************
'*    Reg.bas : La base de registre sans API   *
'*    Créé par Clément LEGER                   *
'*    clem@progfr.com                          *
'***********************************************
'Ce code est libre d'utilisation (c'est pour ça qu'il est
'sur vbfrance !
'
'L'utilisation est très simple : Il suffit de taper "Reg." dans
'votre code, et il est affiché les fonctions possibles à utiliser.

'[Reg.Ecrit]
'   Reg.Ecrit sert à créé ou modifier une clé.
'   Le premier paramètre, est les clés, il suffit de choisir dans la liste qui s'affiche toute seule.
'   Le deuxième est l'endroit ou écrire.
'   Le troisième la valeur
'   Le dernier, le format :
'       REG_String : Format chaine de caractère normale (exemple : "C:\WINDOWS\wt\updater\wcmdmgrl.exe -launch")
'       REG_Number : Un nombre style integer (exemple : 43574)
'       REG_Binary : Un code binaire (exemple : 1) pratique pour enregistrer une configuration.
'       REG_Expand_String : Une chaine de caractère "expandable" (exemple : "%windir%\calc.exe")
'   Vous n'êtes pas obligés de préciser le format, il le sera automatiquement sur REG_String par défault
'
'Exemple 1 : Reg.Ecrit HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", "C'est un test", REG_String
'            Mettra "C'est un test" dans la valeur par défault de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
'Exemple 2 : Reg.Ecrit HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\wcmdmgr", "C:\WINDOWS\wt\updater\wcmdmgrl.exe -launch"
'            Mettra le programme de mise à jour automatique de Windows au démarrage (Sous Windows XP au moins)

'[Reg.Lit]
'Les deux premiers paramètres fonctionnent comme pour Reg.Ecrit
'Le troisième est le texte renvoyé en cas d'erreur. Par défault ce texte est "Erreur"
'Exemple 1 : MsgBox Reg.Lit(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\ProductId")
'            Vous donnera votre numéro de license de Windows
'Exemple 2 : MsgBox Reg.Lit(HKEY_LOCAL_MACHINE, "Clé\Qui\Existe\Pas")
'            Vous renvoyera "Erreur", car la clé n'éxiste pas.
'Exemple 3 : MsgBox Reg.Lit(HKEY_LOCAL_MACHINE, "Clé\Qui\Existe\Pas", "Inconue")
'            Vous renvoyera "Inconue", car la clé n'éxiste pas.

'[Reg.Suprime]
'Vous permet de suprimer une clé dans la base de registre.
'Fonctionne de la même façon que Reg.Lit, sauf que Reg.Suprime ne renvoie rien.

Public Enum HKEYs
    HKEY_CLASSES_ROOT = 0
    HKEY_CURRENT_USER = 1
    HKEY_LOCAL_MACHINE = 2
    HKEY_USERS = 3
    HKEY_CURRENT_CONFIG = 4
End Enum

Public Enum REG_TYPE
    REG_String = 0
    REG_Number = 1
    REG_Binary = 2
    REG_Expand_String = 3
End Enum

Public Sub Ecrit(HKEY As HKEYs, Endroit As String, Valeur As String, Optional Type_Of_Reg As REG_TYPE = REG_String)
    Dim WSHShell
    Set WSHShell = CreateObject("WScript.Shell")
    Select Case Type_Of_Reg
        Case 0: WSHShell.RegWrite HK(HKEY) & Endroit, Valeur, "REG_SZ"
        Case 1: WSHShell.RegWrite HK(HKEY) & Endroit, Valeur, "REG_DWORD"
        Case 2: WSHShell.RegWrite HK(HKEY) & Endroit, Valeur, "REG_BINARY"
        Case 3: WSHShell.RegWrite HK(HKEY) & Endroit, Valeur, "REG_EXPAND_SZ"
    End Select
End Sub

Public Function Lit(HKEY As HKEYs, Endroit As String, Optional Retourner_En_Erreur As String = "Erreur") As String
    On Error Resume Next
    Dim WSHShell
    Set WSHShell = CreateObject("WScript.Shell")
    Lit = WSHShell.RegRead(HK(HKEY) & Endroit)
    If Err <> 0 Then Lit = Retourner_En_Erreur
End Function

Public Sub Suprime(HKEY As HKEYs, Endroit As String)
    On Error Resume Next
    Dim WSHShell
    Set WSHShell = CreateObject("WScript.Shell")
    WSHShell.RegDelete HK(HKEY) & Endroit
End Sub

Private Function HK(HKEY As HKEYs) As String
    Select Case HKEY
        Case 0: HK = "HKCR\"
        Case 1: HK = "HKCU\"
        Case 2: HK = "HKLM\"
        Case 3: HK = "HKEY_USERS\"
        Case 4: HK = "HKEY_CURRENT_CONFIG\"
    End Select
End Function

A voir également

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.