Re, j'arrive à pas à enregistrer l'état de mon CheckBox, quelqu'un a une idée ? J'essaie de mettre en application ce qui est dit dans la FAQ mais rien n'y fait
http://cpp.developpez.com/faq/bcb/?page=systemeregistre
Une idée ?
Re, j'arrive à pas à enregistrer l'état de mon CheckBox, quelqu'un a une idée ? J'essaie de mettre en application ce qui est dit dans la FAQ mais rien n'y fait
http://cpp.developpez.com/faq/bcb/?page=systemeregistre
Une idée ?
Bon finalement après avoir bidouillé mon code j'en suis arrivé à ça et ça a l'air de marcher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 __fastcall TAnniversaire::TAnniversaire(TComponent* Owner) : TForm(Owner) { TRegistry *Reg = new TRegistry(); Reg->RootKey = HKEY_LOCAL_MACHINE; Reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false); if(Reg->ValueExists("Checked")){ CheckBox1->Checked = true; }else{ CheckBox1->Checked = false; Reg->DeleteValue("AnniversaireM"); } delete Reg; }Sa marche, est-ce que c'est correct ? Je l'espère
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void __fastcall TAnniversaire::FormClose(TObject *Sender, TCloseAction &Action) { TRegistry *Reg = new TRegistry; Reg->RootKey = HKEY_LOCAL_MACHINE; Reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true); if ( CheckBox1->Checked ){ Reg->WriteBool("Checked",true); Reg->WriteString("AnniversaireM", Application->ExeName); }else{ Reg->DeleteValue("Checked"); } Reg->CloseKey(); delete Reg; }
Tu enregistres la propriété Checked de ton contrôle avec WriteBool?
Pour lire tu peux utiliser ReadBool.
- Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
- Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
- Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon
Euh ouais, si il est coché je j'enregistre le Boolean "Checked" à true,
ce qui me permet de le tester lors que démarrage du programme...
Peut-être que je devrais simplement enregistrer un nom "Checked" dans le registre et tester si il existe ou non comme je l'ai fait dans l'initialisation de mon programme.
Mon dernier message est arrivé quelques secondes après le tiens, donc je ne l'avais pas encore lue, c'est pourquoi ce que je dit n'a pas de sens par rapport à ce que tu as écris.
Tu devrais utiliser HKEY_CURRENT_USER à la place de HKEY_LOCAL_MACHINE, car dans beaucoup de cas les ordinateurs dans les bureaux n'ont pas les droits d'admin et ne peuvent donc pas écrire à cet endroit.
Voici mon code pour ce genre de truc:
Et:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 TRegistry *reg = new TRegistry(); try { reg->RootKey = HKEY_CURRENT_USER; reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false); MaVal = reg->ValueExists(Application->Title); } catch (...) { // Valeur par défaut } delete reg;
Comme tu vois, c'est pratiquement la même chose toi. Disons, qu'il n'y a pas 100 000 façon de le faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 TRegistry *reg = new TRegistry(); reg->RootKey = HKEY_CURRENT_USER; if(reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false)) { try { reg->WriteString(Application->Title, Application->ExeName); } catch(...) { // L'écriture dans le registre a échoué } } reg->CloseKey(); delete reg;
- Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
- Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
- Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon
Ah ok donc je vais mettre ça dans le HKEY_CURRENT_USER !
Merci beaucoup.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager