Accueil > > > [C] GESTION COMPLETE DE LA BASE DE REGISTRE
[C] GESTION COMPLETE DE LA BASE DE REGISTRE
Information sur la source
Description
Ce code permet de gérer la base de registre dans ses options les plus courantes Il permet de créer des clefs, de les supprimer, de mettre des valeurs dans des clefs... enfin tout le blabla habituel sur la bdr, mais aussi d'enregistrer une clef (et toutes ses sous clefs) sous la forme d'un fichier reg, puis de le charger. Il y a deux méthodes de sauvegarde: + Création du fichier .reg "à la main" par parcours de la clef et de toutes ses sous clefs (le format utilisé est celui de la version 4 de regedit), + Appel par création d'un processus de la ligne de commande "REGEDIT /E fichier clef". La sauvegarde se fait uniquement par création du processus et appelle de la ligne de commande "REGEDIT /S fichier". Pour l'utiliser, prendre le header et le fichier C et les intégrer à votre programme.
Source
- #ifndef __BDR_H_
- #define __BDR_H_
-
- #include <windows.h>
-
- #define HKCR HKEY_CLASSES_ROOT
- #define HKCU HKEY_CURRENT_USER
- #define HKLM HKEY_LOCAL_MACHINE
- #define HKU HKEY_USERS
- #define HKCC HKEY_CURRENT_CONFIG
-
- ULONG bdr_open(HKEY origine, LPCSTR key_name, PHKEY key);
- ULONG bdr_create(HKEY origine, LPCSTR key_name, PHKEY key);
- __forceinline VOID bdr_close(HKEY key);
- ULONG bdr_delete(HKEY origine, LPCSTR key_name);
- ULONG bdr_readDataKey(HKEY key, LPCSTR value_name, ULONG *value_type, BYTE *value, ULONG *value_len);
- __forceinline ULONG bdr_setDataKey(HKEY key, LPCSTR value_name, ULONG value_type, LPCSTR value);
- ULONG bdr_save(HKEY root, LPCSTR key2save, int file, BOOL header);
- ULONG bdr_save_cmd(LPCSTR key, LPCTSTR file_name);
- ULONG bdr_load(LPCSTR file_name);
-
- #endif //__BDR_H_
#ifndef __BDR_H_
#define __BDR_H_
#include <windows.h>
#define HKCR HKEY_CLASSES_ROOT
#define HKCU HKEY_CURRENT_USER
#define HKLM HKEY_LOCAL_MACHINE
#define HKU HKEY_USERS
#define HKCC HKEY_CURRENT_CONFIG
ULONG bdr_open(HKEY origine, LPCSTR key_name, PHKEY key);
ULONG bdr_create(HKEY origine, LPCSTR key_name, PHKEY key);
__forceinline VOID bdr_close(HKEY key);
ULONG bdr_delete(HKEY origine, LPCSTR key_name);
ULONG bdr_readDataKey(HKEY key, LPCSTR value_name, ULONG *value_type, BYTE *value, ULONG *value_len);
__forceinline ULONG bdr_setDataKey(HKEY key, LPCSTR value_name, ULONG value_type, LPCSTR value);
ULONG bdr_save(HKEY root, LPCSTR key2save, int file, BOOL header);
ULONG bdr_save_cmd(LPCSTR key, LPCTSTR file_name);
ULONG bdr_load(LPCSTR file_name);
#endif //__BDR_H_
Conclusion
Dans un premier temps, j'ai voulu utiliser les fonctions RegSaveKeyEx et RegLoadKey pour la sauvegarde et le chargement des clefs, mais lors des appels à RegLoadKey, j'avais souvent des erreurs. Les clefs sauvegardées n'étaient pas toutes rechargées, les valeurs chargées ne correspondaient pas à celles que j'avais enregistrées... Et ces erreurs étaient "aléatoires", le code marchait en gros 2 fois sur 3. C'est pourquoi j'ai fibnalement conservé la sauvegarde par les fichiers reg.
Si certains ont eu des problèmes similaires avec RegSaveKeyEx et RegLoadKey, pourriez-vous svp m'indiquer comment vous y avez remédier?
Désolé pour ceux qui réclamaient une classe en cpp, je ne suis vraiment pas fan, et je préfère resté avec mon C ;)
Historique
- 11 novembre 2006 18:39:33 :
- Changement de la plupart des fonctions
Gestion lors de la sauvegarde "a la main" des types REG_BINARY, REG_DWORD, REG_SZ, REG_EXPAND_SZ et REG_MULTI_SZ.
Sauvegarde et chargement par CreateProcess plutot que par ShellExecute.
Commentaires
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Manipulation de la base de registre [ par yserver ]
Mon pb est pour ecrire des clefs ds la base de registe. Il s'agit de plusieurs types different il uy en a en tout 26. J'ai donc utilise un tableau de
Base de registre [ par Elfus ]
Bonjour, Ce que je veux faire est un petit truc tout bête qui est d'exporter une partie de la base de registre dans un fichier .reg. En gros l'exquiv
Base de registre [ par chinois0013 ]
Bonjour,Je souhaite executer un fichier reg à partir d'un executable en c++.J'utilise donc la fonction suivante :ShellExecute(0, 0, "C:\\Users\\Juju\\
ecrire base de registre [ par crogger ]
Bonjour, je cherche à inscrire des valeurs dans la base de registre, j'ai bien trouvé cette solution :const String RegKey = "\\Software\\Exemple";
Cle de registre Reg_Binary [ par chinois0013 ]
Bonjour,J'ai un petit problème et j'ai grand besoin de votre aide !Je ne comprends pas comment sont coder les valeurs binaires des clés de registre.Co
RegSaveKeyEx [ par PriMe2302 ]
Bonjour, Je voudrais sauvegarder un clé registre ainsi que toutes ses sous-clé. En faisant une recherche sur le site de msdn, j'ai fait ce code : i
[registre] lancez un programme au demarrage [ par lombredudragon ]
bonjour je debute en c++ , j'ai fait une recherche sur le site et j'ai trouver ce bout de code pour ecrire dans le registre:#include <registry.hpp&
tutoriel prog. base de registre [ par cando666 ]
Bonjour a tous...c'était juste pour vous demander si quelqu'un connais un bon livre ou un site ou je pourrais apprendre à programmer en c/c++ dans la
Registres (vérification) [ par Galmiza ]
J'aimerais savoir comment vérifier qu'une variable definie avec l'option "registre" (ex: float register e;) est bien sauvegarder dans un registre et p
UNION REGS ERROR in DEV C++ [ par samissam ]
bonjour; j'ai la fonction suivante dans cod en c++ et quand j'essaie de compiler il me rend une erreur sur la ligne [union REGS registre;] disant q
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MATRICE TEMPLATEMATRICE TEMPLATE par hjr2610
Cliquez pour lire la suite par hjr2610 RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|