Registre

pagd Messages postés 7 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 12 novembre 2008 - 9 nov. 2008 à 23:13
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 10 nov. 2008 à 13:26
Bonjour, quelqu'un peut il me dire pourquoi dans le code ci dessous,
je récupère une erreur 2 à l'appel de RegQueryValue ?

Remarque 1 : Je travail sous XP
Remarque 2 : Je suis admin du PC (j'ai accès au registre)
Remarque 3 : Le champ que je cherche à lire est visible avec RegEdit
Remarque 4 : J'ai la meme erreur en utilisant un RegQueryValueEx

  HKEY    hKey;
  long    lRet;
  long    RdSize;

  char Sub_Key[] =  "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer";
 
  lRet = RegOpenKeyEx(HKEY_CURRENT_USER, Sub_Key, 0, KEY_READ, &hKey);    
  if (lRet != ERROR_SUCCESS)
  {  sprintf(UserName, "RegOpenKey Error %i", lRet);
      return ;
  }

  char Field[] =  "Logon User Name";
  lRet = RegQueryValue(hKey, Field, &UserName[0], &RdSize);
  if (lRet != ERROR_SUCCESS)
  {  sprintf(UserName, "RegQueryValue %i", lRet);
  }

  RegCloseKey(hKey);

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 nov. 2008 à 10:47
RdSize = Taille de 'UserName' ICI !!!;
RegQueryValueEx(hKey, Field, 0, 0, (BYTE*) UserName, &RdSize);

ciao...
BruNews, MVP VC++
0
pagd Messages postés 7 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 12 novembre 2008
10 nov. 2008 à 11:25
Merci

(j'avais trouvé la solution)

Maintenant, j'ai placé ma petite fonction de lecture registre dans un service windows. Je retrouve l'erreur 2
Y a il des limitations dans les accès aux registres quand on est dans un service ?

Quand je vais dans HKEY_LOCAL_MACHINE au lieu de HKEY_CURRENT_USER, la fonction RegQueryValueEx passe !?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 nov. 2008 à 13:26
RegOpenCurrentUser() depuis un service.

Faut regarder dans MSDN, tu gagneras du temps.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous