Lecture base données

Résolu
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 5 mai 2005 à 22:06
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 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;

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

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
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.
3
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
5 mai 2005 à 22:07
Désole j'ai écrit base de données mais en fait c'est base de registre ...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
5 mai 2005 à 22:49
Vérifie au moins que cette clé existe dans la base, pas de problème chez moi après création
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
6 mai 2005 à 13:23
Merci pour ton aide racpp, ça marche bien maintenant !!!

@+++++++++
0
Rejoignez-nous