Classe d'accès simple a la base de registre pour vc++ #corrigée#

Soyez le premier à donner votre avis sur cette source.

Vue 9 605 fois - Téléchargée 1 302 fois

Description

Cette classe propose des fonction simples (avec juste les paramêtres nécessaires pour lire et écrire dans la base de registre).
Pour l'utiliser, il suffit d'ajouter le fichier .h et .cpp a vos sources, faire un
#include RegistreUtil.h
puis, vous pouvez utiliser les fonctions, sans déclarer d'occurences a la classe (car fonction statiques), que vous utilisez com suit :
CRegistreUtil::"fonction"( ... ) ;

et voilà !
tous l'indispensable pour utiliser la base de registre !

####################################################
ATTENTION
####################################################
jusqu'a présent un BUG existait lors de l'utilisation sous WIN 95 et 98 !
La correction est maintenant effectuée (le 18-11-02)
ca représent pas gd chose ! juste la redéfinition de la fonction LitTexte (1 param en plus) et une initialisation en plus dans LitNombre !

Voilà ! j'espère que maintenant tout le monde pourra l'utiliser !

si des PB persistes, prévenez moi !!!

Source / Exemple :


Voilà les fonctions déclarées :

static int CreerCle(HKEY HK, char * cle); 
static int DetruitCle(HKEY HK, char * cle);
static int EcrireTexte(HKEY HK, char * cle, char * nom, char * valeur);
static int EcrireNombre(HKEY HK, char * cle, char * nom, long valeur);
static int LitTexte(HKEY HK, char * cle, char * nom, char * valeur, unsigned long taille);
static int LitNombre(HKEY HK, char * cle, char * nom, long *valeur);
static int EnumVal(HKEY HK, char * cle, char **TableauNom, char ** TableauVal, int NMax ,int MaxCar);
static int EnumCle(HKEY HK, char *cle, char **Tableau,int NMax,int MaxCar);

Le tout dans le fichier ZIP !

Conclusion :


Les fonction EnumCle et EnumVal, permettent de lister le contenu complet d'une clé de la base de registre !

télécharge le fichier ZIP et amuse toi bien !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

MangaII
Messages postés
129
Date d'inscription
dimanche 9 décembre 2001
Statut
Membre
Dernière intervention
12 janvier 2009
-
Merci !

Je suis content de voir que ce code sert encore ...
Je ne suis plus dans ma période C, donc, je te crois sur parole Jojo ... :P)

J'espère que ce code reste compatible avec Vista ... j'ai pas testé, mais y'a pas de raison ...

PS : Toujours présent ci besoin !!!!

MangaII
josephrival
Messages postés
1
Date d'inscription
vendredi 25 août 2006
Statut
Membre
Dernière intervention
9 août 2007
-
Bonjour, super code par contre j'ai modifié les boucles DO-WHILE pour ne pas écrire dans les tableaux s'il n'y a plus de sous-clef ou de valeur. La modification est la suivante :

do
{
Ret =RegEnumKeyEx( Retour,n,NomVal,&NNom,NULL,NULL,NULL,NULL );

if(Ret == ERROR_NO_MORE_ITEMS) break;

strcpy(Tableau[n],NomVal);

n++;
NNom = MaxCar;
} while(n<NMax);

Salutations. Jojo
bachdorches
Messages postés
8
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
19 octobre 2005
-
Salut tout le monde,

C'est vrai que ce code a l'air + que bien, cependant j'ai un peu de mal.
Mon objectif est d'effacer une valeur de la clé HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\run
Pour ça, je pensais énumerer les sous-clés pour les mémoriser, puis lire et mémoriser toutes les valeurs de cette clé (sauf celle que je veux effacer.

Dans un deuxième temps, détruire cette clé puis la recréer avec les infos mémorisées.

Mes bloquages sont :
ATTENTION : LES TABLEAUX DOIVENT ETRES INITIALISES :
=> Comment initialiser ces tableaux
=> Je ne connais pas cette structure **TableauNom (pointeur de pointeur ???)

Voila, Merci à ceux qui voudront bien me répondre
et merci à MangaII.
magic_Nono
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1 -
namespace pas très bien géré avec VC6

mais C en effet indiqué.

ds une classe, ça permet en plus d'autres choses, (héritages....)
et ça évite d'avoir tt plein de fonction en global
surtout si un "using" est employé

Kenavo
anonyme_man_in_this_world
Messages postés
161
Date d'inscription
samedi 25 juin 2005
Statut
Membre
Dernière intervention
1 août 2006
-
salut !

une source vraiment superbe mais j'ai la meme remarque que

vecchio56 , pourquoi ne pas utiliser namespace puisqu'il est fait

pour cela ?

en tout cas , merçi pour la source et bonne continuation .

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.