Bonjours à tous.
J'ai écrit une petite fonction en C pour accéder facilement à la BDR, malheureusement elle ne me donne pas toujours le résultat exacte suivant d'ou je l'appelle dans mon programme. Quand le resultat est érroné la fonction retourne une chaine vide.
Voici le code de la fonction:
je l'appelle comme suit:
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 void LectureBDR (char *adresse,char *valeur,char *mem ) { HKEY clefReg; DWORD tailleClef; RegOpenKeyEx( HKEY_LOCAL_MACHINE, adresse, 0, //réservé KEY_ALL_ACCESS, //Tout accès &clefReg ); RegQueryValueEx(clefReg,valeur , 0, NULL, (BYTE*)mem, &tailleClef); RegCloseKey(clefReg); }
j'ai constaté que le fait de créer une variable quelconque et inutile à la première ligne de la fonction ( "int jeSertARien" par ex.) corrigé parfois le problème... Bref c'est très étrange ... pour moi en tout cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 char mem[256] = ""; LectureBDR ( "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", "Shell",mem );
Si quelqu'un pouvait m'éclairer ce serai fantastique.
Merci
Partager