Lecture base données

[Résolu]
Signaler
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008
-
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008
-
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;

returnValue = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\DocFolderPaths",0, KEY_QUERY_VALUE, &hkey);
if (returnValue != ERROR_SUCCESS)
MessageBox(Dlg,"Erreur1","erreur",NULL);

returnValue = RegQueryValueEx(hkey, "ProgramFilesDir", NULL, NULL, (BYTE*)&data, &dwLen);
if (returnValue != ERROR_SUCCESS)
MessageBox(Dlg,"Erreur2","erreur",NULL);

RegCloseKey(hkey);

Merci d'avance !!!

4 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
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.
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008

Désole j'ai écrit base de données mais en fait c'est base de registre ...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
Vérifie au moins que cette clé existe dans la base, pas de problème chez moi après création
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008

Merci pour ton aide racpp, ça marche bien maintenant !!!

@+++++++++