Bonjour,
J'ai besoin dans un programme d'accéder à la base de registre, pour trouver certaines informations sur les clé USB connectées : Vid/Pid, et numéro de série.
J'ai pu voir que ces infos étaient disponibles sur des clé 0, 1, 2, ..... à l'endroit suivant :
J'ai écrit un petit programme pour récupérer la valeur de cette clé, mais comme je débute, j'ai une erreur et je ne comprend pas d'où elle vient.SYSTEM/CurrentControlSet/Service/USBSTOR/Enum
J'utilise le code suivant :
L'erreur se produit lors de l'exécution, au niveau de la ligne test=(char*)*valeur;
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 char* LectureRegistre() { HKEY hk; char *test; LPBYTE valeur=NULL; LPDWORD sizeValeur=NULL; LPCWSTR cle = _T("SYSTEM\\CurrentControlSet\\Service\\USBSTOR\\Enum"); if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, cle, 0, KEY_READ, &hk)) { if(RegQueryValueEx(hk, _T("0"), 0, 0, valeur, sizeValeur)) { sizeValeur=(LPDWORD)sizeof(valeur); if(RegQueryValueEx(hk, _T("0"), 0, 0, valeur, sizeValeur)) { test=(char*)*valeur; } } } RegCloseKey(hk); return test; }
Il semblerai donc que le pointeur valeur ne reçoivent pas l'adresse de cette clé.Exception non gérée à 0x0041392b dans CryptageCle.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00000000.
Merci d'avance pour votre aide
Partager