elinep
Messages postés56Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention 3 décembre 2009
-
24 nov. 2004 à 23:14
elinep
Messages postés56Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention 3 décembre 2009
-
29 nov. 2004 à 21:29
Voila j'ai un probleme j'essaye de parcourir le regedit notemment a l'aide d'une fonction recursive a base de RegOpenKeyEx ();
Seulement j'ai un probleme, le programme s'enfonce un petit peu dans l'arborescence puis ne peut plus ouvrir de dossier (=subkeys).
Erreur : " Impossible de creer un fichier deja existant"
Ce qui est byzarre c'est que si j'ouvre ma base de registre et qu'a l'aide de la souris je la parcours et que je lance mon bout de code, alors il arrive a parcourir tout les endroits ou je me suis ballade.
Voala....MAis comment Est ce donc que C'est PossiBLe o_0 !
the_last_pharaon
Messages postés6Date d'inscriptionmardi 22 juin 2004StatutMembreDernière intervention29 novembre 2004 29 nov. 2004 à 16:19
j'ai le même problème que toi concernant la fonction de l'api RegOpenkeyEx!!!
Il n'y a donc pas de problème dans ton code, mais plutôt dans l'utilisation de cette fonction de "merde" RegOpenkeyEx, qui ne marche soudainement plus ?
Moi, je répertorie dans un arbre toutes les "keys", et en créant cet arbre, la fonction RegOpenkeyEx() plante, mais elle plante vraiment quand elle veut, elle marche correctement pour la plupart des clés mais pour certaines, elle plante sans aucune raison.
la solution que j'ai trouvée, c'est d'utiliser RegCreateKeyEx(), qui a deux modes de fonctionnement, soit elle crée la clé si elle n'existe pas, soit elle ouvre sans la changer (toi, c'est ce qu tu veux)...
j'suis déçu des admins... :(
elinep
Messages postés56Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention 3 décembre 2009 25 nov. 2004 à 14:09
Bah en fait j'utilise bien RegEnumKeyEx () et RegEnumValue (), mais si je veux parcourir toute l'arborescence je peux apsser apr une fonction recursive non?
Et pourquoi il faut aps utiliser la recursivite a cause de la pile qui explose?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 nov. 2004 à 14:26
La gestion de la pile est toujours un risque quand on utilise la recursivite mais ce n'est pas la que l'erreur se produit dans ton cas, il semble bloquer avant.
Verifie que tu n'ouvres pas un handle de sous cle sur sur une cle parente deja ouverte.
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?
elinep
Messages postés56Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention 3 décembre 2009 26 nov. 2004 à 00:22
Mouai ce que je comprend pas c'est pourquoi lorsque que je parcours l'arborescence dans le regedit et que je lance mon programme il n'y a aucun probleme lors de l'ouverture.
Et que signifie cette erreur "Impossible de creer un fichier deja existant", j'essaye aps de crees un fichier puisque je fais RegOpenKeyEx().
elinep
Messages postés56Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention 3 décembre 2009 26 nov. 2004 à 00:47
A oui autre chose si par exemple l'ouverture de l'adresse A et echoue et que dans le programme je le prevoie et que je mette RegOpenKeyEx (A) alors la l'ouverture fonctionne.
Genre:
Fonction Recursive ()
{
if (RegOpenKeyEx (adresse)!=ERROR_SUCCCES) //adresse est la variable contenant l'adresse suivante
RegOpenKeyEx (A);
....
}
La ca marche, evidemment ca plante quelques dossiers plus loin.
elinep
Messages postés56Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention 3 décembre 2009 29 nov. 2004 à 21:29
Ouai te vexe pas Brunews, je connais en personne the_last_pharaon , il aime bien titiller mais il a rien contre toi, en tout cas la soluce semble bien etre RegCreateKeyEx ()...
Byzare Byzare tout ca!