Bonjour,
je développe une application et j'enregistre quelques clés pour son paramètrage dans HKEY_CURRENT_USER.
voici un exemple de fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void MaClasse::MethodeDeMiseAJourDeLaCle() { HKEY HandleKey; DWORD dwBuffer = 896; // integer // On initialise la taille du buffer à 4 (taille d'un DWORD) unsigned long ulTailleBuffer = 4; string oChemin = "Software\\monAppli\\Parametre"; string oNomCle = "KeyName"; // Ouverture de la clé qui nous intéresse dans la base de registre if( RegOpenKeyEx( HKEY_CURRENT_USER, oChemin.c_str(), NULL, KEY_SET_VALUE, &HandleKey ) == ERROR_SUCCESS ) { RegSetValueEx( HandleKey, oNomCle.c_str(), 0, REG_DWORD, (CONST BYTE*) &dwBuffer, ulTailleBuffer ); RegCloseKey( HandleKey ); } }
Le problème est que la clé est bien enregistrée (j'obtiens le résultat escompté sur l'application), mais après quelques jours, elle est effacée. Je ne fais appel à aucun moment à du code qui pourrait l'effacer...
Je trouve ca bizarre.
N.B. : le système sur lequel l'application tourne n'est jamais arreté et tourne sur XP Professionnel.
De plus, la clé que j'ajoute est déjà présente dans la base de registre. La fonction ci-dessus la met simplement à jour. C'est après la mise à jour qu'elle disparait (mais pas instantanément). Je pense que windows restaure quelques parametres ou clés et efface la mienne, non ?
Auriez-vous une piste de reflexion ?
Merci
Partager