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

 Delphi Discussion :

Exécuter un .exe avec des paramètres


Sujet :

Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut Exécuter un .exe avec des paramètres
    salut

    je connaissais 2 api qui permettent d'exécuter avec des paramètres ShellExecute et un autre

    l'autre j'ai oublié son nom, mais si je me rappel bien, contrairement à ShellExecute, lui ne peut exécuter que des exe

    c'était juste une parenthèse pour vous demander quel api choisir dans mon cas

    donc mon cas est composé de 2 appli :

    l'appli 1 qui exécute l'appli 2 avec un paramètres string, genre "salut"

    peut être :

    ShellExecute(0,'OPEN','appli2.exe /p salut', Nil, Nil, SW_SHOW);

    jse pas, je dis ça comme ça ... le code a surement une erreur, mais c'est un début

    et l'appli 2 est composé d'un Tedit, et dedan il y a le string "envoyé" par l'appli 1 en paramètre

    et dans l'exemple ce sera "salut"


    en gros, il me faut transmettre un mot à mon application, lorsqu'on l'exécute

    le faite de l'exécuter avec une appli supplémentaire ne me dérange pas (pour des raisons que je ne développerai pas pour ne pas sortir du contexte)

    merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 439
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 439
    Points : 1 330
    Points
    1 330
    Par défaut
    @ Coussati, pourquoi pas directement dans l'appli 2 avant quelle ne s'exécute (splashscreen).

    Tu aurais à l'exécution une fiche faisant partie de l'appli2 avec ton texte ou image avec un fading pendant x secondes puis la fiche principale de l'appli 2.


    @+,

    Cincap

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    non tu n'y ai pas .... tu n'as pas compris

    rien à voir avce un S.C

    l'appli 1 doit transmettre un "mot" à l'appli 2 lorsque celui ci l'exécute

    donc l'appli 1 fait un shellexecute sur l'appli 2 en mettant en paramètre le mot

    au démarrage de l'appli 2, il récupère le texte envoyé en paramètre

    tu vois un peu ce que je veux faire ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 747
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 747
    Points : 13 315
    Points
    13 315
    Par défaut
    Le 2ème est CreateProcess. Dans les 2 cas, les paramètres sont acceptés.
    Je ne comprend pas vraiment ton problème Dis-nous exactement ce que tu veux mettre en oeuvre...

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    L'appli2 lira par exemple les paramètres comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i:=1 to paramcount do showmessage(paramstr(i)) ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Le 2ème est CreateProcess. Dans les 2 cas, les paramètres sont acceptés.
    Je ne comprend pas vraiment ton problème Dis-nous exactement ce que tu veux mettre en oeuvre...
    je pensais avoir été claire dans le 1er message

    pour le moment vous me dites que c'est possible, mais je n'ai aucun bout de code, moi qui ne sais pas de quoi partir ...

    je reprends :

    j'ai 2 prog :

    1 qui une fois exécuter affiche un mot dans un Tedit
    mais ce mot doit être passé en paramètre lors de son exécution, ET DONC : si je l'exécute normalement avec ma souris, le tedit sera vide, vu qu'il n'y aura pas de mot passé en paramètre ...

    et c'est là qu'intervient le prog 2
    il a pour but d'exécuter le prog 1 en lui passant un mot en paramètre

    Graffito apparemment tu es sur la bonne voie ? si ce code est sencé être en prog 2 dans l'évènement TForm1.FormCreate pour récupérer le mot passé en paramètre ?

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 439
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 439
    Points : 1 330
    Points
    1 330
    Par défaut
    @ Coussati, as tu vérifié ce lien, on ne sait jamais.

    http://www.developpez.net/forums/d67...ation-externe/

    @+,

    Cincap

  8. #8
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par cincap Voir le message
    @ Coussati, as tu vérifié ce lien, on ne sait jamais.

    http://www.developpez.net/forums/d67...ation-externe/

    @+,

    Cincap
    hé bien oui, c'est exactement ce qu'à dit sat83 que je veux faire :

    Tu lance "Bis.exe" avec un paramètre depuis Main.exe

    Dans Bis.exe, Au lancement de l'appli tu teste ce paramètre. Si il est présent, c'est que c'est "Main.exe" qui l'a lancé donc tu continu l'exécution. Sinon, c'est que le programme a été lancé directement et tu ferme l'application.

    Bon, évidemment tu pourra toujours lancer en ligne de commande encore faut t'il connaitre le paramètre.

    Mais c'est une solution très simple a mettre en oeuvre:
    - le shellexecute à changer dans Main.exe (tu ajoute un paramètre)
    - un test à ajouter dans Bis.exe)

    Tu t'en sort en quelques lignes de codes...


    Si tu veux améliorer un peu, tu peux passer le Handle de la fenêtre principale de "Main.exe" en paramètre, puis tester avec FindWindows dans "Bis.exe" que ce Handle correspond bien à Main.exe.
    sauf qu'il ne donne aucune ligne de code, c'est pourquoi je n'avance pas

  9. #9
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    bon, me revoilà quelques minutes après mon dernier poste

    cincap ton lien m'a permis de comprendre que c'est bien un "paramètre" que je devais récupérer

    et en faisant une petite recherche sur "parameter" j'ai pu trouver le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      showmessage(Paramstr(1));
    end;
    qui permet de récupérer le 1er paramètre (le "mot" dans mon exemple) passé lors du shellexecute

    merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécuter un .exe avec des paramètres à partir d'un script python
    Par soufianesse dans le forum Général Python
    Réponses: 3
    Dernier message: 06/10/2011, 14h59
  2. [WD10] Exécuter une application avec des paramètres
    Par mrcooll dans le forum WinDev
    Réponses: 7
    Dernier message: 22/09/2009, 15h13
  3. exécuter un jar avec des paramètres (php)
    Par malko.mad dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 23/02/2009, 13h00
  4. Réponses: 9
    Dernier message: 30/08/2006, 13h51
  5. Réponses: 5
    Dernier message: 28/04/2006, 14h40

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