Stocker un string dans une base de registre

Fermé
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 - 8 mai 2009 à 10:59
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 - 8 mai 2009 à 12:04
Bonjour,
Je travaille sous Visual C++ 2003, j'aimerai pouvoir stocker une chaine de caractères dans la base de registres et puis la retrouver par la suite, j'ai cru comprendre qu'il faut d'abord créer une clé et une valeur dans cette clé, donc j'ai mis ce code:
HKEY cle=HKEY_CURRENT_USER;

LPDWORD action=(LPDWORD)REG_CREATED_NEW_KEY;
 DWORD  dwRes;
//créer la clé     dwRes=RegCreateKeyEx(HKEY_CURRENT_USER,"SOFTWARE\\GeneratorTool",0,"",REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&,action);
//ajouter une valeure
RegSetValueEx(cle, "maVeleure", 0, REG_SZ, (unsigned char*)i_sEventFile.c_str(), i_sEventFile.length());


la clé se crée belle et bien , mais aucune valeur ne s'affiche a part celle par défaut, je comprends pas.
quelqu'un peut m'aider?

2 réponses

Bonjour

Pour pouvoir écrire dans une clé, que tu l'aies créée toi-même ou qu'elle existe déjà, il faut commencer par l'ouvrir. C'est cette ouverture de clé qui te donnera le 1er paramètre à passer à RegSetValueEx (au lieu de HKEY_CURRENT_USER comme tu le fais actuellement)
0
lilaaa Messages postés 106 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 21 mai 2009 7
8 mai 2009 à 12:04
Si je comprends bien ce que vous dites je fais ça :
HKEY cle=HKEY_CURRENT_USER;
LPDWORD action=(LPDWORD)REG_CREATED_NEW_KEY;
CString maVal;
maVal="coucou";
if(!(RegOpenKeyEx(HKEY_CURRENT_USER,"SOFTWARE\\GeneratorTool",0,KEY_ALL_ACCESS,&cle)))
    RegCreateKeyEx(HKEY_CURRENT_USER,"SOFTWARE\\GeneratorTool",0,"", REG_OPTION_NON_VOLATILE,    KEY_ALL_ACCESS, NULL, &cle, action);

else
{
RegSetValue(HKEY_CURRENT_USER,"SOFTWARE\\GeneratorTool",REG_SZ,i_sEventFile,i_sEventFile.GetLength());}

RegCloseKey(cle);


et ceci n'a pas marché.

Remarque: comment peut on extraire le nom de la clé à partir de RegOpenKeyEx
0