IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Première utilisation [Trucs & Astuces]


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Par défaut Première utilisation
    Bonjour,
    comment savoir si c'est la première fois que l'utilisateur lance le programme???

  2. #2
    Membre éprouvé
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Par défaut
    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 registres donc voici un résumé si t'y connais rien ou presque :
    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();
    Mathieu

    P.S. J'avais déjà mis ça quelque part ... mais ça a disparu
    Même en recherchant mes messages déjà postés .... :

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Par défaut
    j'ai pas tout compris dans ton code la tu peux m'expliquer!!

  4. #4
    Membre éprouvé
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Par défaut
    Heu ... oui,

    En fait c'est un résumé des commandes utiles pour ce genre de choses ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <vcl\registry.hpp>
    (Bon jusqu là ... pas trop dur )

    Déclarations globales (après le TForm1*Form1;):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TRegistry *Reg = new TRegistry; 
    AnsiString RegPath = "\\Software\\Mon Rep";
    Pour ouvrir et fermer une clef :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Reg->OpenKey(RegPath, true);
    Reg->CloseKey();
    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->WriteString("Message", Edit1->Text);
    Reg->WriteInteger("Identifiant", 1);
    Pour savoir si ta valeur existe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (Reg->ValueExists("Message")) 
        Edit1->Text = Reg->ReadString("Message");
    Tu devras t'en servir car tu ne peux lire une valeur inexistante (je crois que ça plante ...)
    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 ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 32
    Par défaut
    merci, je verrai ca demain

  6. #6
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 16
    Par défaut
    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.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 5
    Par défaut
    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.

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/01/2008, 14h52
  2. Réponses: 12
    Dernier message: 03/09/2006, 18h26
  3. Première utilisation d'Hibernate
    Par hdd dans le forum Hibernate
    Réponses: 2
    Dernier message: 03/06/2006, 21h02
  4. [FLASH 8] Première utilisation de composant
    Par Destiny dans le forum Flash
    Réponses: 3
    Dernier message: 24/03/2006, 12h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo