begin process at 2012 02 13 07:37:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de registre

 > ACCÈS A LA BASE DE REGISTRE SANS API ! V2

ACCÈS A LA BASE DE REGISTRE SANS API ! V2


 Information sur la source

Note :
7,67 / 10 - par 27 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de registre Classé sous :registre, base, api Niveau :Débutant Date de création :12/04/2001 Date de mise à jour :10/08/2002 16:54:37 Vu :30 747

Auteur : Clem

Ecrire un message privé
Site perso
Commentaire sur cette source (21)
Ajouter un commentaire et/ou une note

 Description

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

  • '***********************************************
  • '* 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
'***********************************************
'*    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



 Sources du même auteur

Source avec Zip Source avec une capture VBPOPUP UN WINPOPUP-LIKE [+RES OUBLIÉ]
Source avec Zip Source avec une capture CRYPTER UNE IP VERS LE DWORD
Source avec Zip Source avec une capture [CSCNTSVR] PROGRAMME KI SE CONNECT A UN SERVEUR COUNTER-STRI...
Source avec Zip SERVEUR PROXY HTTP.
Source avec Zip VBMATRIX 1.0

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) SHELLVIEW EN VB.NET par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) AJOUTER OU SUPPRIMER MENU CONTEXTUEL D'APPLICATION PAR CLIC ... par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) MODIFIER IMAGE COULEUR EN NOIR ET BLANC PAR CLIC DROIT par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) RENOMMER TOUS LES FICHIERS D'UN DOSSIER PAR CLIC DROIT par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) REDIMENSIONNER ET IMPRIMER FORMAT PHOTO (10X15) par Le Pivert

 Sources en rapport avec celle ci

Source avec Zip MODIFIER LA BASE DE REGISTRE par Anakin79
Source .NET (Dotnet) CLASSE .NET DE LECTURE/ÉCRITURE DANS LA BASE DE REGISTRE par NikatorS
Source avec Zip Source .NET (Dotnet) FONCTIONS DE BASE DU REGISTRE par VB 2005
Source avec Zip Source avec une capture OCX REGISTRE par gta126
Source avec Zip COMPILATION D'API ET DE ROUTINES par mister_rom

Commentaires et avis

Commentaire de ramseb le 18/01/2002 09:10:26

Bon programme mais comment faire pour récupérer les données de type binaire?
Au fait pas besoin des abréviations de HKEY, ça marche avec les noms complets

Commentaire de neojoce le 06/03/2002 01:20:06

Vous etes dont ben chien, seulement 5.../10 ???? Bande de ...
9/10 pq c exactement kes ke j'cherchai !!

Commentaire de cestoutmoi le 14/03/2002 09:54:46

Moi, c'est grâce au virus LoveLetter que j'ai appris ce genre de petit truc sympa.
Il manque quand même de quoi récupérer toutes les clé d'une arborescence.
exemple: je veux récupérer toutes les clé de HKLMSOFTWAREmicrosoftwindowscurrentversion un
sans les connaître à l'avance.
De plus en plus de virus y placent des clés aléatoires. (genre KlezE)
Qui à la soluce !!

Commentaire de SoniqExnihilo le 26/04/2002 14:36:24

exelent se bout de code !!!
et pas besoin de prendre avec les API , meme pour les dwords car la methode RegWrite prend un troisieme parametre pour le type parmi les 4 suivant

String REG_SZ
String REG_EXPAND_SZ
Integer REG_DWORD
Integer REG_BINARY

voila

Commentaire de SoniqExnihilo le 26/04/2002 14:39:36

pour plus d'info , allez ici

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsObjWshShell.asp

Commentaire de taye le 05/05/2002 12:34:54

bravo :) simple et efficace !

Commentaire de amarco le 26/08/2002 13:29:01

Felicitations!
il est vraiment pratique
A qui puisse interesser: Il fonctionne Ok sous win98, win2000 et XP

Commentaire de Pem13lw le 03/03/2003 10:49:34

Bien, trés bien, note : 8, par contre je comprend pas pourquoi il me dit que "Racine incorrecte dans la clé du registre" avec windows 2000 par contre fonctionne parfaitement avec 98 et XP pro.

Bravo

Commentaire de dragonspyro93 le 17/04/2003 17:22:26

comment acceder a une cle de registre dite par default ??

je ne sais pas comment la nommer puisquelle n a pas de nom

exemple :

Reg.Lit(HKEY_LOCAL_MACHINE, _
"classeshttpshellopencommanddefault"

ca marche pas !

Commentaire de chavers le 13/05/2003 19:34:50

heu....
superbe !! 10/10
mais avec function au lieu de sub pour ecrit() ca marche mieux, g bu ou c moi ? ;o)

Commentaire de Bollocks le 14/07/2003 15:08:40

C'est pas mal tout ça !!! Ca marche bien avec des "DWORD" mais avec
des "BINARY" j'arrive à écrire un octet mais pas à le relire !!!
Et comment peut-on ajouter plusieurs octets et les relire ????

Commentaire de Nargzul le 16/07/2003 14:14:24

je cherche comment arriver, sans api, a faire un truc qui arrive à regarder ce qu'il y a dans un dossier dans la base de registre, pour but par exemple de savoir tout les programmes installés...

Commentaire de FabriceH2 le 18/07/2003 01:14:42

Super ton code même si je n'ai eu besoin que de la partie "lire"!! (je t'ai mis un 10)
marche nickel sous XP
j'ai eu un petit pb en lecture car à la fin du soi-disant "endroit" , j'avais oublié un ""
MERCI

Commentaire de jojokerker le 22/12/2003 15:14:56

Ton code est clair,simple,court.
Que dire ... Beau boulot vraiment respect.
Bonne continuation et Merci.

Commentaire de mathieumg le 09/08/2004 18:51:23

J'ai mit le code dans reg.bas et dans ma form lorsque je met dans le onload de ma form1 :

MsgBox Reg.Lit(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\ProductId")

Ça me dit object required :(

Merci de m'aider

Mathieu M-G
mathieumg@qc-net.com

Commentaire de mortiis le 30/10/2004 20:53:51

Merci ton script fonctionne, mais mon quand je veut utiliser la fonction Ecrit, mon antivirus le détecte comme un virus.

C'est pas pratique si tu veut utiliser sa dans un prog que tu veut distribuer.

Donc sa vaut rien ce script c'est un gros 0.
A moins que tu ait une solution a ce problemme.

Commentaire de GregoH le 12/11/2004 15:30:37

Bonjour,
Je viens de récupérer le code source servant à lire, écrire ou
supprimer une clé dans la base de registre sans utiliser les API. J'a ibien
compris le principe, malheureusement avec ce systeme on ne peut pas donner
nommer la valeur que l'on veut ajouter.
Je m'explique, j'aimerais ajouter une valeur chaine dans :
HKEY_CURRENT_USER\Environment
Cette valeur aura pour nom : "CNEXTBACKGROUND" et sa valeur sera "no"

Avec le code, si j'écrit : Reg.Ecrit HKEY_CURRENT_USER, "Environment\",
"no", REG_String lorsque je regarde la base de registre je vais avoir
"no" dans la valeur par défault et non pas une valeur nommée
"CNEXTBACKGROUND" ayant "no" pour données.

De plus si j'écrit  Reg.Ecrit HKEY_CURRENT_USER,
"Environment\CNEXTBACKGROUND\", "no", REG_String lorsque je regarde la base de registre je
vais avoir une clé sous Environment et ce n'est pas ce que je veux.

Si vous avez la solution je suis preneur car j'en ai vraiment baesoin
pour le logiciel.

Merci beaucoup. En tous les cas le code est génial pour supprimer ou
éffacer les clés, vraiment pratique.

Greg.

Commentaire de BruNews le 12/11/2004 16:33:07 administrateur CS

GregoH > les acces base de registres doivent se faire AVEC les APIs et non sans. Un antivirus correct interceptera toute tentative d'acces par la machine script, API est fait pour cela et on DOIT l'utiliser.

BruNews, MVP VC++

Commentaire de mathieumg le 12/11/2004 23:01:07

BruNews saurais-tu ou je pourrais trouver un script de reg qui utilise les Api et pleinement fonctionnel ? Ni sur CS ni sur google je n'ai trouvé un qui marche parfaitement...


Mathieu M-Gosselin
mathieumg@qc-net.com

Commentaire de BruNews le 12/11/2004 23:12:52 administrateur CS

Si tu sais declarer et utiliser une fonction d'API alors celles de la base de registres ne sont pas plus compliquees que les autres.
Fais une recherche 'source' sur RegOpenKeyEx, y a surement des trucs sinon utilise ma dll (v 9 derniere je crois).

Commentaire de Number7 le 18/10/2010 03:06:49

Simple, claire et facile à utilisé.
J'ai rien à redire.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Api pour la Base Des Registre SVP [ par rene ] Komment kon fait pour lister les &lt;&gt; Valeur presente ds une clé de la Base Des Registre ?? base de registre distante [ par laurent207 ] vous dite, pour se connecter à une base de registre distante, d'utiliser l'api RegConnectRegistry, mais vous dite pas comment, en + elle n'est pas dan Differents acces à la base de registre ??? [ par babas14 ] bonjour,Quelles sont les differences entre l'acc&#233;s &#224; la base de registre avec des API ou avec l'instruction getsetting ou avec Set Wshshell Base de registre [ par Crash_overide12 ] Bonjour,Dans le cadre du développement d'une application afin de changer l'ip de différentes cartes reseau, je suis ammener à inscrire des information Verifier l'existance d'une clé dans la base de registre [ par Light666 ] Comme le titre l'indique, je cherche une API qui me permettra de vérifier l&#8217;existence d'une clé dans la base du registre, j'ai chercher sur le n lire le contenue de ma base de registre [ par leken ] slt, je viens vers vous car je suis a la recherche d'un brin de code je souhaiterais suivant un chemin que j'ai définie trouver une liste des sous Help... Base de registre [ par rgilles ] Bonjour, J'ai un problème je n'arrive pas à écrire une clé dans la base de registre en VB6 et Vista. Bien sûr ceci n'est pas pour un virus mais pour Créer une valeur chaine dans la base de registre [ par Jeromedu79 ] Bonjour, Je suis entrain de créer une application qui a besoin d&#8217;accéder à la base de registre de Windows, mais je rencontre un problème ... J lecture d'une clé dans la base de registre HKLM [ par bidouille007 ] Bonjour Malgré des tentatives hélas vaines je me tourne vers vous pour savoir si il y a une procédure particulière pour lire la valeur d'une clé dans Base de registre [ par TiDjool ] Bonjour,Je souhaiterais rebooter dix postes en réseaux (avec commande shutdown) mais les rebooter sur une session différente de celle qui est présente


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,451 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales