Bonjour
j'aimerais avoir un exemple de lecture de valeur chaine dans la base de registre.
Je n'arrive pas à récupérer une valeur en faisant CRegKey::QueryValue(etc.)
Merci d'avance.
Version imprimable
Bonjour
j'aimerais avoir un exemple de lecture de valeur chaine dans la base de registre.
Je n'arrive pas à récupérer une valeur en faisant CRegKey::QueryValue(etc.)
Merci d'avance.
salut,
que renvoi la méthode Open ? ERROR_SUCCESS ?
montre ton code .
Salut,
Code:
1
2
3
4
5
6
7
8
9
10
11
12 CRegKey m_key; if(m_key.open(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters")==ERROR_SUCCESS) { char valeur[60]=""; DWORD taille=strlen(valeur); if(m_key.QueryValue(valeur,"Domain",&taille)==ERROR_SUCCESS) { // plante à QueryValue MessageBox(valeur); } }
normal ,tu confonds taille de la variable et longueur du contenu...
la fonction a besoin de savoir la longueur du répertoire de destination.
strlen renvoie 0 dans ton cas.
Code:
1
2
3
4
5
6
7
8
9
10
11
12 CRegKey m_key; if(m_key.open(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters")==ERROR_SUCCESS) { char valeur[60]; DWORD taille=sizeof(valeur); if(m_key.QueryValue(valeur,"Domain",&taille)==ERROR_SUCCESS) { // plante à QueryValue MessageBox(valeur); } }
Ok merci !
Effectivement.
On est obligé de passer par un char[], on peut pas utiliser un CString ?
:?
vu la signature pas le choix.
Citation:
LONG QueryValue( DWORD& dwValue, LPCTSTR lpszValueName );
LONG QueryValue( LPTSTR szValue, LPCTSTR lpszValueName, DWORD* pdwCount )
Merci bien! :D