Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Exporter une clé de registre [ Windows / MFC ] (fannylapo)

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é 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 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 Registre windows en lecture [ par shadow1779 ] Bonjour,j'aimerai de l'aide si possible sur le registre windows j'arrive a creer une clé , ou l'ouvrir, a en supprimer une... etc mais pas a lire une Teste de l'existence d'une clé dans la base de registre en c++ [ par Gpic ] Salut, Je suis en train de faire une faire une appli pour tester l'existence d'une clé seulement j'arrive pas a trouver de classe qui gére la base 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 avec utilisateur non-administrateur [ par Leonel67 ] Bonjour à tousVoilà j'ai un problème d'accès à la base registre avec les systèmes multi-utilisateur, genre WIN2000 ou WIN XP pro.Voici le code que j'u créer un clé registre (dword) [ par cddvdcopy ] voila mon probleme (j'utilise dev-C++) je voudrai creer une clé registre elle se situera ici : HKCU\Software\monlogiciel le repertoire "monlogiciel" e


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.