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







Répondre avec citation




Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.

Partager