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 : Problème rédéfinition non désiré d'une chaine [ Windows / System ] (Fituza)

vendredi 12 janvier 2007 à 00:49:28 | Problème rédéfinition non désiré d'une chaine

Fituza


Bonjour,
désirant analyser une partie du registre pour une application, je recontre un problème récurant: le chemin d'accés est modifié sans que je ne puisse rien y faire...
Travaillant sur ce problème depuis une semaine j'espère que vous serez me donné une solution...
Le compilateur utilisé ici est DEV C++ (4.9.9.2).


Voici une partie du code:
#include <windows.h>

HKEY GetHandle(HKEY Base, LPCSTR Root)
{
HKEY Handle;
if(RegOpenKeyA(Base, Root, &Handle) == ERROR_SUCCESS)
return Handle;
       return NULL;
}

CHAR*strAdd(const char* str, const char*str1)
{
     CHAR*AddedCHAR;
     int size, size2;           
    
     for(size = 0; str[size]; size++);
     for(size2 = 0; str1[size2];  size2++);
    
     AddedCHAR = new char[size+size2+1]; // "\\"
        
     for(int counter = 0; counter < size+size2+2; counter++)
     {
      if(counter < size)
      AddedCHAR[counter] = str[counter];
      if(counter == size)
      AddedCHAR[counter] = '\\';
      if(counter > size )
      AddedCHAR[counter] = str1[counter - size - 1];
     }
  
     if(AddedCHAR)     
     return AddedCHAR;
            return NULL;            
}

void WinRegAnalyser()
{
              HKEY Base;
              HKEY Handle;
             
              DWORD Result;
             
              Base = (HKEY)0x80000000;
              Handle = Base;
             
              LPCSTR Root;
              LPSTR Name;
             
              int numbHKey = 0;
              getch();

              for(numbHKey = 0; RegEnumKey(Base, 0, Name, Result) == ERROR_SUCCESS; numbHKey++)
              {
              if(!numbHKey)
              Root = Name;                           // Le problème se situe ici car à partir de là Root sera toujours égale à Name
              else
              Root = strAdd(Root, Name); // Alors qu'une fonction vise à créé le chemin d'accés
              
              Handle = GetHandle(Base, Root);
              }// Donne la profondeur des dossiers
             
   
     
}

Je vous épargne ici des autres lignes de code visant à compter le nombre de clefs ect...

En espèrant avoir corriger les GROSSES fautes avant de posté,
je vous remercie d'avoir prie le temps de lire  ce message et j'espèreque vous pourrez trouver une solution :)...

Fituza


vendredi 12 janvier 2007 à 00:52:53 | Re : Problème rédéfinition non désiré d'une chaine

Fituza


Désole ce n'est pas RegEnumKey(Base ... mais RegEnumKey(Handle... ) :( vraiment désolé
Fituza



Cette discussion est classé dans : base, root, size, counter, addedchar


Répondre à ce message

Sujets en rapport avec ce message

ms-dos, base de registre et c++ [ par retaks666 ] jiamerai conaitre els commandes pour acceder a la base de registres windows.. koment lire, créer, modifeir des valeurs et comment inclure des commmadn Ckasse CFile et création de fichiers [ par enilda ] Votre texte ICIVotre texte ICIVotre texte ICI conversion d'un string [ par bastiente ] Ba$t :bonjour... Voila je travaille sur un fichier ou figure la valeur : 32 989,88Je dois la retourner dan un autre fichier. Ca c'est fait, mai je doi espaces à droite [ par CHENRY ] en VC++ 6.0, je lis des datas dans une base de données SQL Server 2000. Dans la base de données, comme les champs string de la table ont une longueur Base de registre avec msdos [ par Goldo ] salut, je voix bcp de solution pour pouvoir lire la base de registre sous win. mais est ce qu'il y a une solution pour lire une info de la bdr sous do base de donnée access et le c++ [ par Skywalker13 ] Hello le peuple,J'ai besoin d'accéder à une base de donnée Access avec une application en mode console. (Donc pas de MFC et autres).Sauf que sur inter ecrire dans une base de données access grâce à ODBC [ par volcomboy1 ] BonjourPourriez vous m'expliquer comment on fait pour créer des nouveau champs et des nouveau enregistrements dans une base de données acces grâce a o pb de base [ par mantalotus ] Bonjour a tous,voila mon probleme...En entree j'ai un nombre tres grand par exemple de l'orde du 10^26. Cependant je souhaiterais ramener ne nombre su ecrire Base de donnee [ par amosc ] comment fait on pour ecrire sur une base de donne tu type access utilise ton une requette SQL comme en php ou une methode precise de la classe CRecord AIDEZ MOI SVP SVP [ par yoshimua ] AIDEZ MOI JE CHERCHE LA SOURCE DE KI VEUT GAGNER DES MILLION


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



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,343 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é.