begin process at 2012 05 29 05:34:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

Exporter une clé de registre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Exporter une clé de registre

jeudi 9 novembre 2006 à 19:23:12 | Exporter une clé de registre

fannylapo

Bonjour,

J'ai un problème et j'aurais besoin d'être rapidement.

Je désire exporter une clé de registre vers un .reg dans un dossier. Je code en MFC en unicode sur VS 2005.

//----------------------------------------------
RegOpenKeyEx( HKEY_LOCAL_MACHINE, _T("SOFTWARE\\MyCompagny"), 0, KEY_ALL_ACCESS, &hKey );

lRetour = RegSaveKeyEx( hKey, sDestination + m_sFichierRegistre, NULL, REG_LATEST_FORMAT );
               
 if( ( lRetour == ERROR_ALREADY_EXISTS ) || ( lRetour == ERROR_REGISTRY_IO_FAILED ) )
{
    DeleteFile(sDestination + m_sFichierRegistre);

    RegSaveKeyEx( hKey, sDestination + m_sFichierRegistre, NULL, REG_LATEST_FORMAT );

    }//end if
RegCloseKey( hKey );
//----------------------------------------------
avant ce code je donne les droits pour les tokens.

Je n'ai aucune erreur mais mon fichier n'est pas une clé valide.
Si je l'ouvre j'ai quelque chose comme :
//----------------------------------------------
hbin     �10;                      ?ÿÿÿnk, åÉ�B;÷
�4;Ç�1;    ÿÿÿÿ�3;       �8;)  ÿÿÿÿ�1;   H�2;  x   ÿÿÿÿ�14;       �14;   @   �4;   �7;   MyCompagny�1; þÿÿsk  x   x   �18;   D�1;  �1; �4;"�C;�1;  (�1;      �14;   �2; ø
    �10;�18; �19; �2; �1;�2;     �5;    !�2;   �1A;�18;    €�1;�2;     �5;    !�2;   �10;�18; �1F; �3; �1;�2;     �5;    #�2;   �1A;�18;   �1;À�1;�2;     �5;    #�2;   �10;�18; ? �F; �1;�2;     �5;     �2;   �1A;�18;    �10;�1;�2;     �5;     �2;   �10;�14; ? �F; �1;�1;     �5;�12;    �1A;�14;    �10;�1;�1;     �5;�12;    �10;$ ? �F; �1;�5;     �5;�15;   É<":m�19;pîSºe/�14;   �1A;�14;    �10;�1;�1;     �3;    �1;�5;     �5;�15;   É

//----------------------------------------------

au lieu d'avoir un fichier lisible de la même façon que lorsqu'on le fait à la mais dans regedit Exporter

Si quelqu'un pouvait m'aider. Je dois régler ce problème VITE.

Merci d'avance à tous
jeudi 9 novembre 2006 à 23:07:17 | Re : Exporter une clé de registre

julienbj


J'avais fait il y a quelques temps (un peu plus de 2 ans) un code pour gérer la  BDR.
Dedans il y avait la sauvegarde de clefs de la BDR au format des fichier .reg
Toutes les types de clefs ne sont pas  gérées, mais pour un début...

Vive le C
Savon

vendredi 10 novembre 2006 à 05:09:32 | Re : Exporter une clé de registre

fannylapo

Je suis désolé mais ton lien ne fonctionne.

J'avais déjà examiné ta source et malheureusement, elle ne me convient. Je ne peux pas me permettre de laisser des formats de clef.

Je tien à préciser que le code foctionnait avant avec RegSaveKey. Quand je double clique sur ma clef j ai un message qui me dit quel n'est pas valide

Je dois aussi dire que le .reg doit se restaurer au double clique et/ou RegLoadKeyEx même si les clé n'existe pas


Je sais vraiment plus quoi essayer, mais merci quand même pour la réponse.
vendredi 10 novembre 2006 à 17:49:42 | Re : Exporter une clé de registre

julienbj


Bizare pour le lien, j'ai fait un copier coller pourtant, tant pis, si tu as vu la source...

Pour la sauvegarde, en fichier reg, tu peux l'utiliser, il faut juste que tu rajoutes les quelques formats qui manquent, ca devrait pas etre bien difficile à faire (je les ai pas fait, car je ne les ai jamais utilisé).
Il faut ausi dire que RegSaveKey sauvegarde une clef, mais pas au format des fichiers .reg, donc c'est pour ca qu'il faut que tu le crées toi meme ce format.

Si tu sauves une clef ave RegSaveKey, tu peux la restaurer avec RegLoadKey, mais pas le fichier .reg

Vive le C
Savon

vendredi 10 novembre 2006 à 19:39:16 | Re : Exporter une clé de registre

fannylapo

J'ai essayer de la restaurer avec RegLoadKey, mais il ne me crée MyCompagny/Dossier1/SousDossier1 sans aucune de mes clefs.

mais en vrai j ai

MyCompagny/Dossier1
    MyCompagny/Dossier1/SousDossier1
    MyCompagny/Dossier1/SousDossier1/SousSousDossier1

MyCompagny/Dossier2
    MyCompagny/Dossier2/SousDossier1
    MyCompagny/Dossier2/SousDossier1/SousSousDossier1

et plus de sous dossier

avec un bon tas de clef.......
   
j'ai lu à quelque part que c'étais normal que je ne puisse pas lire mon fichier. Mais il ne veux même pas le recréer comme avant  ni  avec RegLoadKey ni avec RegRestoreKey. Et je trouve ça louche !?!


vendredi 10 novembre 2006 à 20:18:00 | Re : Exporter une clé de registre

julienbj


Je ne vois pas trop le probleme en fait ;)

Tu as une (ou plusieurs clefs et sous clefs) dans ta bdr.
Tu souhaites les sauvegarder dans un fichier. POur ca, tu utilises RegSaveKey(Ex).
Jusque la d'accord!
Tu vas avoir un fichier illisble puisque sauvegarder brut de brut dans le fichier (sans l'habillage du fichier .reg)
Seule la fonction RegLoadKey pourra le lire (ptet RegRestoreKey aussi, pas vérifier).
Meme si tu nommé le fichier avec l'extension .reg, ca ne pourra pas fonctionner il est pas du tout à la norme de ces fichiers.

Ensuite, tu veux recharger ce ficghier, c'est bien ça?
Comment fais-tu pour recharger le fichier? Quelle est l'erreur qui t'es retournée? ...

Vive le C
Savon

vendredi 10 novembre 2006 à 20:49:31 | Re : Exporter une clé de registre

fannylapo

Hihi, je crois que je vais être oubligé de te fournir un peu plus d'explication.

le bug est apparue récement. Le logiciel été (je crois) dévellopé en 98. Une de ses fonctionnalités est de faire une copie de sauvegarde du registre de toute les clé de touts les logiciels dévellopé l'entreprise. Avant RegSaveKey créait un .reg qui pouvait ètre restaurer en double cliquant dessus. Il n'avait pas de fonctionnalité de restauration de cette clé.

Je crois que le problème est apparue avec XP, ça fonctionne juste plus. RegSaveKeyEx ne crée plus un fichier double cliquable et si je restaure le fichier que j'ai céer avec RegLoadKey ou RegRestoreKey, la structure de registre n'est pas recréer correctement et les clef non plus... en vrai il créer que trois dossiers sur plusiers et 0 des clé. Sans aucun message ni exception. Si je double clique dessus
"Le ficher n'est pas un script du registre". Mais avant ça fonctionnait de cette façon.

J'ai deux possibilités, soit je trouve une façon de faire un .reg valide qui est restaurer au double clique ou je trouve comment restaurer mon fichier avec l'app (forçant l'usager à paser par le programme pour la restauration) et les deux conviennent au supérieur

Si tu as une idée

Merci beaucoup pour ce support
vendredi 10 novembre 2006 à 21:04:29 | Re : Exporter une clé de registre

julienbj


Dans RegSaveKeyEx, change le dernier paramètre et met: REG_STANDARD_FORMAT.

Sinon, en regardant un peu ed doc sur RegSaveKeyEx (que je connaissais pas, j'utilisais que RegSaveKey), j'ai vu que:
Pour restaurer le fichier sauvegarder à l'aide de cette fonction, il fallait plusieurs appels à RegRestoreKey, RegDeplaceKey ou RegLoadKey.
Ca expliquerait le fait qu'il ne restaure qu'uine partie des dossiers.
Je vais essayer de regarder un peu plus en détails la fonction RegSaveKeyEx.

Vive le C
Savon

vendredi 10 novembre 2006 à 21:18:22 | Re : Exporter une clé de registre

fannylapo

J'ai essayé les 3 options de RegSaveKeyEx et les 3 de RegRestoreKey en combinaison et rien de plus, ça restaure toujours la même chose. j'ai aussi essayé de faire plusieurs appels et rien de nouveau...
vendredi 10 novembre 2006 à 23:06:52 | Re : Exporter une clé de registre

julienbj


Pour la sauvegarde, j'ai bien la même chose que toi, et le fichier semble correct pour ce que j'ai pu en voir.
Par contre, je bloque sur l'utilisation de RegLoadKey, elle me renvoie sans cesse un message d'erreur me disant que je n'ai pas les droits d'acces, mais je ne sais pas à quoi je n'ai pas le droit d'accéder :( (J'ai deja vérifier les problemes de privilege ce n'est pas ca).
Je t'en dit plus demain

Vive le C
Savon


1 2

Cette discussion est classée dans : exporter, registre, clé, hkey, 1a


Répondre à ce message

Sujets en rapport avec ce message

ecrire une valeur dans la base de registre [ par yerosnimus ] bonjour,en dépit de toute la littérature trouvée sur ce site concernant l'écriture de clé dans la base de registre windows, je n'y arrive pas ou pas t creer une clé de registre en C [ par shadow1779 ] Bonjour, j'ai trouvé ca sur msdn pour creer une clé de registre en C, cepandant je n'ai vraiment pas compris donc si quelqu'un pouvait me le refaire a 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 base de registre [ par papi2 ] Bonjour, Je crée la clé (avec un exécutable)... avec un autre exécutable, je voudrais récupérer et mettre la valeur ( http://www.monsite.fr/message/M suppression clé registre XP des entrées USB (clés) [ par lionel62620 ] Bonjour a tous, Je cherche un programme qui supprime toutes entrées dans la base de registre XP des clé USB insérées. Ne trouvant pas de logiciels de ecrire dans le registre windows 7 en c [ par kirbydu94 ] Bonjour, je souhaiterais développer un logiciel me permettant d'écrire dans le registre en c. Cependant j'aimerais écrire dans le répertoire précis démarrage automatique avec windows [ par ndubien ] Bonjour,Comment faire pour que mon programme se lance au démarrage de windows et celà à partir du registre?Quelle clé créer? Avec quelle nom? Quelle v Problème de registre [ par rvkiki ] Bonjour,j'ai un petit problème de registre. J'utilise un service pour déclencher automatiquement l'exécution d'une appli au démarrage d'une machine. C Au secours !!! encore un pb de registre [ par rvkiki ] bonjour,je bosse toujours sur une appli dans laquelle j'implémente un système de serviceLe problème est que actuellement l'appli stocke ses initialisa registre windows - lecture d'une valeur [ par shadow1779 ] bonjour, voila je veux lire dans la valeur InstallPath de ma clé, j'voudrai en fait faire un: char path[150]; et enregistrer ce que retournera RegQuer


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,374 sec (4)

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