goutbouyo
Messages postés429Date d'inscriptionmardi 6 juillet 2004StatutMembreDernière intervention12 janvier 2008
-
5 mai 2005 à 22:06
goutbouyo
Messages postés429Date d'inscriptionmardi 6 juillet 2004StatutMembreDernière intervention12 janvier 2008
-
6 mai 2005 à 13:23
Salut,
Je cherche à lire une valeur dans la base de données mais je n'y arrive pas ...
Pouvez vous me dire ce qui ne va pas dans ce morceau de code SVP :
char data[256];
unsigned long dwLen = sizeof(unsigned long);
int returnValue = 0;
HKEY hkey;
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201415 6 mai 2005 à 04:40
Salut,
Il parait que tu veux récupérer le chemin du dossier Program Files. Voici comment faire:
char data[256];
unsigned long dwLen ;
int returnValue ;
HKEY hkey;
returnValue = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion",0, KEY_QUERY_VALUE, &hkey);
if (returnValue != ERROR_SUCCESS) MessageBox(Dlg,"Erreur1","erreur",NULL);
dwLen =0; // pour récupérer la longueur des données
returnValue = RegQueryValueEx(hkey, "ProgramFilesDir", NULL, NULL, (BYTE*)data, &dwLen); //returnValue ne sera pas égal à 0 car dwLen est trop petit.
returnValue = RegQueryValueEx(hkey, "ProgramFilesDir", NULL, NULL, (BYTE*)data, &dwLen);
if (returnValue != ERROR_SUCCESS) MessageBox(Dlg,"Erreur2","erreur",NULL);
RegCloseKey(hkey);
Il faut donc deux appels à RegQueryValueEx(). Le premier récupère la taille des données dans dwLen. L'erreur de retour est à négliger, c'est normal. C'est le deuxième appel qui récupère les données.
Si tu veux récupérer le chemin du dossier Mes Documents d'un utilisateur, tu gardes ta clé et tu remplaces ProgramFilesDir par le nom de l'utilisateur.