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