Vortigaunt
Messages postés11Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention23 mars 2008
-
6 mars 2008 à 21:10
Vortigaunt
Messages postés11Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention23 mars 2008
-
7 mars 2008 à 18:31
Bonjour à tous,
Voilà, je développe actuellement un logiciel qui a pour but de lister les valeurs de certaines clés du registre.
Cependant, je ne comprends pas comment faire pour y arriver. J'ai parcouru longuement la MSDN, et ai bien découvert les fonctions RegOpenKeyEx, RegEnumKeyEx... Mais je n'y arrive pas.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 7 mars 2008 à 00:04
Voici un exemple fonctionnel:
char buffer[512];
char data[256];
HKEY hKey;
DWORD taille=256;
LONG retour=RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0, KEY_QUERY_VALUE, &hKey);
int index=0;
retour=RegEnumValue(hKey,0,buffer,&taille,0,0,(LPBYTE)data,&taille);
do
{
lstrcat(buffer," = ");
lstrcat(buffer,data);
MessageBox(0,buffer,"",0);
index++;
taille=256; // Réinitialisation de la taille des buffers
retour=RegEnumValue(hKey,index,buffer,&taille,0,0,(LPBYTE)data,&taille);
}while(retour!=ERROR_NO_MORE_ITEMS);
Mais j'ai un autre problème. Lorsque j'essai de lister toutes les valeurs de la clé Run, il n'y en a qu'une qui s'affiche... Pourquoi ? Que dois-je faire pour lister toutes les valeurs ?
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 6 mars 2008 à 23:49
C'est normal car les tailles fournies en 4eme et en dernier paramètres de RegEnumValue() sont modifiées après l'appel de cette fonction. Il suffit donc de les reinitialiser avant chaque appel à RegEnumValue(). Je vais te faire un petit exemple.