Accès à la base de registre

Soyez le premier à donner votre avis sur cette source.

Vue 18 967 fois - Téléchargée 2 146 fois

Description

Module d'accès à la base de registre : recherche, lecture/écriture, suppression de clés et d'entrées, ...
Vu que la gestion de (toute) la base de registre n'est pas aisée en VB, je crois que ce module devrait pouvoir aider un certain nombre d'entre nous.

Source / Exemple :


'
' Exemple d'utilisation des procédures du module Registre.bas
'
' L'utilisation des API d'accès n'est pas aisée; c'est pour cela que j'ai écrit quelques fonctions
' dans ce module, pour servir d'intermédiaire avec les API en simplifiant leur utilisation.
'
Public Sub ExempleRegistre()
    Dim Clé As Long
    Dim CheminMisterRom As String
    Dim CheminNomOrdinateur As String
    Dim Nom As String
    Dim h As Integer
    
    ' Initialisation de la clé
    CheminMisterRom = "Software\Mr Rom\Exemple d'utilisation des API"    
    CheminNomOrdinateur = "System\ControlSet\Control\ComputerName\ComputerName"

    ' Vérification de la présence de cette clé d'entrée dans la base de registres
    If Not VérifiePrésenceClé(HKEY_CURRENT_USER, CheminMisterRom) Then
        ' Clé non-présente
        ' Création de cette entrée
        CréationClé HKEY_CURRENT_USER, CheminMisterRom

        '  Exemple de lecture d'une information dans la base de registre        
        ' Le nom de l'ordinateur dans le réseau

        ' Ouverture de la clé 
        Clé = OuvertureClé(HKEY_CURRENT_USER, CheminNomOrdinateur)    
        ' Lecture de l'entrée    
        Nom = Trim$(LectureEntrée(Clé, "ComputerName"))    
        ' Fermeture de cette clé
        FermetureClé Clé    
        
        ' Stockage de ce nom dans un emplacement personnalisé de la base de registre
        ' HKEY_CURRENT_USER\Mr Rom\Exemple d'utilisation des API
        ' Ouverture de la clé 
        Clé = OuvertureClé(HKEY_CURRENT_USER, CheminMisterRom)    
        ' Ecriture de cette valeur
        EcritEntrée Clé, "Nom de l'ordinateur", Nom
        ' Fermeture de cette clé
        FermetureClé Clé    
        
    End If
    
    ' Ouverture de la clé 
    Clé = OuvertureClé(HKEY_CURRENT_USER, CheminMisterRom)    
    ' Lecture de l'entrée    
    Nom = Trim$(LectureEntrée(Clé, "Nom de l'ordinateur"))    
    ' Fermeture de cette clé
    FermetureClé Clé    

    ' Un message pour vous ...
    MsgBox "Salut ! Le nom de votre ordinateur est : "+Nom, vbInformation, "Mr Rom"

End Sub

Conclusion :


Prenez le temps d'essayer les fonctions que j'ai écries, elles sont sensés simplifier la vie. Il y a un bon paquet d'API concernant la base de registre, je n'en n'ai moi-même utilisé qu'une bonne partie. Le seul inconvénient majeur est la conversion des paramètres et les conventions d'appels du C.

Je crois qu'il n'y a pas de bug dans le code que je vous ai fournis, ni dans le module Registre.bas (je l'utilise depuis des lustres sans problème apparent ...)

Si le besoin se fait se sentir, je peux écrire une petite doc détaillée sur la méthode d'accès et les fonctions les plus importantes.

A+

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
4
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
15 août 2006

oups... pardon... je viens de répondre car j'ai reçu un mail me disant que le fil avait été modifié.... je n'avais pas regardé les dates des posts...

Il est où l'ajout du 15/1/2007 ?
Messages postés
4
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
15 août 2006

Bonne année à tous

En définitive Mister-rom et Pcpt avez tous les 2 raison et il n'y a que le fonctionnement du forum à comprendre (pas facile j'en conviens)
- les réponses irritantes : la réponse se fait à la fin du fil et dans la précipitation on oublie la référence au post concerné. Le résultat en est que certaines réponses semblent bizarres mais en fouillant dans les autres on arrive parfois à trouver celle qui l' initiée.
- les consultants du forums sont variés et leurs raisons sont multiples. Personnellement je suis architecte senior au ministère de l'agriculture et ne développe plus qu'en python et php (et peu souvent). Toutefois certaines applis (ou parties d'applis) sont en VB pour des questions de simplicité (le gestionnaire de composants en particulier et l'OLE) et quand je dois mettre le nez dedans, je ne veux pas réinventer le monde et consulte des sites comme celui-là.
- Mister-rom comme moi-même, en raison de notre expérience, savons que "l'astuce de programmation" géniale viens souvent d'un néophyte car en débutant on a tout à inventer alors qu'après plusieurs années on va appliquer toujours les mêmes principes de programmation : code-source permet d'éviter cela !

En résumé, pas d'ironie, pas de susceptibilité.... et encore bonne année à tous
Messages postés
13
Date d'inscription
mercredi 26 avril 2006
Statut
Membre
Dernière intervention
8 février 2008

Ta souce est geniale. J'ai eu du mal à la mettre en application mais tu n'y es pour rien

Pour ceux qui critique le nom de tes variables, elles ont le mérite d'être clair
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Quel plaisir de lire ces commentaires.
En tant que spectateur, je me régale...

MisterRom : pour un francophone, t'as plutôt un nom anglais !

En tout cas merci pour le code, je vais mettre le lien dans le forum pour qqun.

@ ++
Mortalino

PS : c'est vrai que 3 ans c'est long (20 ans de programmation = 7 visites sur CS)
Messages postés
709
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
28 août 2012

ca ne marche qu'en VB6?
Afficher les 18 commentaires

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.