Bonjour,
comment savoir si c'est la première fois que l'utilisateur lance le programme???
Bonjour,
comment savoir si c'est la première fois que l'utilisateur lance le programme???
Bonsoir,
Je ne vois pas d'autres solutions que :
- un .ini
- une clef dans le Registre
Opte plutôt pour la solution 1 sinon tu risques de te faire tapper sur les doigts par JEG![]()
(cf Sondage de gRRosminet) :
http://www.developpez.net/forums/vie...light=registre
Tu testes si existe.
Si OUI, déjà lancé
Si NON, tu crée !!
Je préfère moi les clefs registresdonc voici un résumé si t'y connais rien ou presque :
Mathieu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include <vcl\registry.hpp> TRegistry *Reg = new TRegistry; AnsiString RegPath = "\\Software\\Mon Rep"; Reg->OpenKey(RegPath, true); Reg->WriteInteger("Identifiant", 1); if (Reg->ValueExists("Message")) Edit1->Text = Reg->ReadString("Message"); Reg->WriteString("Message", Edit1->Text); Reg->CloseKey();
P.S. J'avais déjà mis ça quelque part ... mais ça a disparu![]()
Même en recherchant mes messages déjà postés ....:
j'ai pas tout compris dans ton code la tu peux m'expliquer!!
Heu ... oui,
En fait c'est un résumé des commandes utiles pour ce genre de choses ...
(Bon jusqu là ... pas trop dur
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <vcl\registry.hpp>)
Déclarations globales (après le TForm1*Form1;):
Pour ouvrir et fermer une clef :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TRegistry *Reg = new TRegistry; AnsiString RegPath = "\\Software\\Mon Rep";
Pour stocker une chaine et un entier (dans Message et dans Identifiant respectivement) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Reg->OpenKey(RegPath, true); Reg->CloseKey();
Pour savoir si ta valeur existe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Reg->WriteString("Message", Edit1->Text); Reg->WriteInteger("Identifiant", 1);
Tu devras t'en servir car tu ne peux lire une valeur inexistante (je crois que ça plante ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (Reg->ValueExists("Message")) Edit1->Text = Reg->ReadString("Message");![]()
Le simple fait qu'elle existe suffit à prouver que le programme a déja été lancé ... mais tu peux stocker Installation : Réussie par exemple pour être plus explicite ! 8)
Mathieu
P.S. Le chemin RegPath sert à te trouver un coin simpa pour créer ta clef ... je te conseille une clef unique pour tous tes programmes !
Avec des sous-clef pour ne pas envahir le base de registre
Par exemple,remplace Mon Rep par SamDaKap ...
Tu peux aussi faire un FindWindow de ta fenêtre principale dès l'entrée dans le programme. Si trouvée, ça veut dire qu'il existe déjà une instance du programme.
Tu peux aussi créer un atome en début de programme (détruit à la sortie), et même chose, tester son existence dès l'entrée.
La solution de drobert s'applique si on veut savoir si une instance du programme existe déjà. Si on veut savoir si c'est la première fois depuis l'installation du programme sur la machine qu'il est utilisé, c'est la solution de Alacazam.
Partager