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

Langage Delphi Discussion :

passage de paramètres en temps réel [FAQ]


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 213
    Par défaut passage de paramètres en temps réel
    Hello,

    Je voudrais savoir comment détecter dans mon application on la lance via :
    application.exe /start

    Et si start est demandé, lancer une procédure.. et empecher que le logiciel ne se réouvre une deuxième fois..

    On m'a dit que c'était pas possible, mais par exemple, winamp le fait..

    Alors je perd pas espoir

    Merci

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Par défaut
    Il faut jouer avec le mutex pour empecher la réouverture. Ensuite tu peux envoyer un message Windows (PostMessage ou SendMessage) à ton application en fonction du paramètre.

    Tu trouveras tous ca dans la FAQ Delphi

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 213
    Par défaut
    Salut,

    Oui j'ai trouvé ceci:

    http://delphi.developpez.com/faq/?pa...tion#1instance

    C'est parfait, il ne se lance plus qu'un fois.
    Mais je n'ai pas trouvé quelque chose pour récupérer les paramètres..

  4. #4
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 703
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 703
    Par défaut
    Citation Envoyé par mickaelmediaprod
    Mais je n'ai pas trouvé quelque chose pour récupérer les paramètres..
    ParamCount te donne le nombre de paramètres. 0, s'il n'y en a pas.
    Et ParamStr(1) pour récupérer le premier paramètre, ParamStr(2), pour le deuxième, etc ...

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  5. #5
    Membre éclairé

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Par défaut
    paramstr()

  6. #6
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut
    http://phidels.com/php/index.php3?pa...as2.htm&id=228
    je ne l'ai jamais utilisé mais il semble intéressant

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    voici un complément de la FAQ.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    const 
     ChaineUnique_WM_MonAppli='WM_MESSAGE_MonAppli';
     msgTitre_Application='MonAppli';
    var 
      //Message unique permettant la restauration au premier plan
      //de l'application en cours d'exécution
     WM_MESSAGE_MonAppli : LongWord;
    Demande d'un numéro de message unique via une API
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function MessageUnique(ChaineUnique:PChar):LongWord;
    // Crée un numéro de message unique pour, entre autre, WM_MESSAGE_MonAppli
    begin
     Result:=RegisterWindowMessage(ChaineUnique);
    end;
    dans le .dpr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      WM_MESSAGE_MonAppli:=MessageUnique(PChar(ChaineUnique_WM_MonAppli));
     
         CreateMutex (nil, False, 'maDescription');
         if GetLastError <> ERROR_ALREADY_EXISTS
          then MessageDlg(msgApplication_Existante,mtWarning, [mbOk], 0);
          //Recherche le titre de la fenêtre de l'application
         HandleInstancePrecedente := FindWindow(nil, PChar(msgTitre_Application));
         if HandleInstancePrecedente <> 0
             // cf. TMainForm.DefaultHandler
          then SendMessage(HandleInstancePrecedente, WM_MESSAGE_MonAppli, 0, 0)
    dans la fiche principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TMainForm.DefaultHandler(var msg);
    //Traitement du message unique WM_MESSAGE_MonAppli
    begin
      inherited DefaultHandler(Msg);
      if TMessage(msg).Msg = WM_MESSAGE_MonAppli then
        begin
          ... // récupére les paramètres via le record TMessage
        end;
      // si autre msg
    end;

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/08/2014, 20h12
  2. Changer en temps réel paramètre block via GUI
    Par Bassmax dans le forum Simulink
    Réponses: 4
    Dernier message: 23/12/2008, 20h55
  3. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47

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