Bonjour,

Je suis super novice et j'essaie de bricoler pour lire le registre. Je rencontre un problème lors de la lecture des valeurs dans le registre

En fait, le résultat c'est qu'il me retourne environ 1 erreur toutes les 2 requêtes. L'erreur qu'il me retourne c'est un 0x2 (ce qui correspond à ERROR_FILE_NOT_FOUND dans le system error code) alors que la clé existe belle et bien.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <windows.h>
#include <stdio.h>
#include <winreg.h>
 
int main(){
 
	int numeroSiteDansLeRegistre=0;
	char cleRegistre[500] ="SOFTWARE\\Remote\\";
	char cleRegistreTemp[500];
 
	char tempIntNumeroSiteDansLeRegistre[500];
    DWORD returnRegistryOpen;
    DWORD returnRegistryQuery;
 
	HKEY hKey;
	char buffer[500];
	DWORD size = sizeof(buffer)+1;
 
	while(numeroSiteDansLeRegistre<=1000){//-------------------------------------------------------while
 
		sprintf(tempIntNumeroSiteDansLeRegistre,"%d",numeroSiteDansLeRegistre);//------------------transformation du numero de int en char
 
		strcpy (cleRegistreTemp,cleRegistre);//----------------------------------------------------on attribue la valeur de "cleRegistre" à "cleRegistreTemp"
		strcat (cleRegistreTemp, tempIntNumeroSiteDansLeRegistre);//-------------------------------on append le numero a la clé de registre
		strcat (cleRegistreTemp,"\\");//-----------------------------------------------------------on append le backslash pour finir la clé de registre
 
		returnRegistryOpen = RegOpenKeyEx(HKEY_LOCAL_MACHINE,cleRegistreTemp,0,KEY_ALL_ACCESS,&hKey);
 
		if(returnRegistryOpen==ERROR_SUCCESS){//---------------------------------------------------si le resultat à l'open sur le registre est OK
			printf("%d", numeroSiteDansLeRegistre);//----------------------------------------------affichage du numéro
			printf(" ---> ");
 
			returnRegistryQuery=RegQueryValueEx(hKey,"NAME",NULL,NULL,buffer,&size);
 
			if(returnRegistryQuery==ERROR_SUCCESS){//----------------------------------------------si le resultat à la requete sur le registre est OK
 
				printf(buffer);
				printf("\n");
 
				buffer[0] = '\0';
 
			}else{//-------------------------------------------------------------------------------si le resultat à la requete sur le registre est KO
				char bufferError[500];
				DWORD sizeBufferError = sizeof(bufferError);
 
				printf("*ERROR* : 0x%x\n", GetLastError());
 
				bufferError[0] = '\0';
 
			}
		}
		RegCloseKey(hKey);//-----------------------------------------------------------------------On referme le registre
		printf("\r");
		numeroSiteDansLeRegistre++;
	}
	return 0;
}
Je ne vois pas mon erreur.

Merci d'avance