RegSetValueEx - Ajout d'une clé et disparition de celle-ci après quelques jours
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:
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 :wink: