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 régulier
    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
    Points : 81
    Points
    81
    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 : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    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 régulier
    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
    Points : 81
    Points
    81
    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
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 670
    Détails du profil
    Informations personnelles :
    Âge : 44
    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 670
    Points : 7 040
    Points
    7 040
    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 ...


  5. #5
    Membre actif

    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
    Points : 255
    Points
    255
    Par défaut
    paramstr()

  6. #6
    Membre éclairé
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    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
    Points : 746
    Points
    746
    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
    Points : 15 060
    Points
    15 060
    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