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 !
Commentaires
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
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
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.
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
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.