Bonjour tout le monde!
J'essaie de récupérer plusieurs valeurs dans la base de registre avec la fonction RegQueryValueEx.
Voici la fonction:
Je l'appelle ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 BOOL RegValue(HKEY hKeyRoot, LPCTSTR lpSubKey,DWORD Size) { LONG Error; Error=RegQueryValueEx(hKeyRoot,lpSubKey,0,0,(LPBYTE)gPath,&Size); if(Error==ERROR_SUCCESS) { return(TRUE); } else { return(FALSE); } }
avec DiskNumber qui est un entier qui va de 0 à n.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 LONG Error; char gPath[512]; Error = RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT("SYSTEM\\CurrentControlSet\\Services\\Disk\\Enum"), 0, KEY_QUERY_VALUE, &hKeyDisks); if (Error == ERROR_SUCCESS) { ... sprintf_s (gDiskName, 32, "%u", DiskNumber); Size = sizeof (gPath); Error=RegValue(hKeyDisks,gDiskName,Size); ... }
Le problème est que la valeur retournée par RegQueryValueEx(hKeyRoot,lpSubKey,0,0,(LPBYTE)gPath,&Size); dans la fonction RegValue est "ERROR_FILE_NOT_FOUND" alors que si je mets TEXT("0") à la place de "lpSubKey", la fonction lit bien la valeur de la clé "0".
Comment faire pour que cet argument soit une variable?
Merci d'avance
Partager