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

Algorithmes et structures de données Discussion :

Echange de paramètres entre deux programmes


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut Echange de paramètres entre deux programmes
    Salut,


    j'ai deux programmes écris dans deux langages différents, je veux à partir de l'un appeler l'exécutable de l'autre en échangeant les paramètres via des fichiers .txt et .bmp.

    Programme1 --Appelle --->Programme2

    Programme1 charge une image et la transmet avec d'autres paramètres au programme2.
    le programme2 traite l'image chargée et crée en sortie une autre image.
    Programme1 a besoin de l'image traitée pour l'afficher.

    j'ai opté pour faire une boucle qui teste à partir du Programme1 l'existence de l'image traitée (crée par le pRogramme2), ça a marché mais il me semble que c'est du bricolage je cherche une solution plus fiable.

    Merci pour votre aide

  2. #2
    Membre actif Avatar de maleaume
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Par défaut
    une premiere idée comme ca :
    si ton programme 2 se ferme une fois le traitment terminé, je ferai en sorte depuis mon programme 1 de lancer le second dans un autre thread, et de checker si le thread est alive en testant toutes les 2 secondes par exemple.

    une fois le thread terminer je peux aller lire mon fichier et afficher

  3. #3
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    salut,

    merci maleaume et souviron34 pour vos réponses
    Citation Envoyé par souviron34 Voir le message
    ça dépend en quel langage, sous quelle plateforme, avec quelle architecture voulue ?
    Les programmes sur la même machine, ou sur des machines distantes ?
    Sur quel os ?

    os:windows
    programme1:c++ Builder
    programme2:matlab (je crée le .exe du code matlab à partir de matlab.

    j'utilise shellexecute pour faire l'appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ShellExecute(this,"Open","C:\\programme2.exe",NULL,"C:\\dossier",SW_HIDE);
    //SW_HIDE pour dire que le programme2 s'exécute en tache de fond.

  4. #4
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    Bin ya assez "simple" je pense (vue que tu es sous windows) en utilisant l'API:

    Tu fais un CreateProcess, puis tu attends la fin de ce processus pour chercher si il y a une image ou non :

    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Donc c'est pas portable, mais on peut faire l'équivalent sous Linux

  5. #5
    Membre éclairé Avatar de Pistolero_JB
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2008
    Messages : 42
    Par défaut
    C'est une idée comme une autre mais en programmation classique les échanges d'information entre logiciels/processus sont assurés par la notion de socket wiki. Chaque logiciel est serveur/client d'une communication sur un socket de la machine. Je pense que le copier/coller du presse papier doit justement utiliser cette méthode. Cette notion de socket est universelle on la retrouve sur Windows, Linux, BSD, etc. Pratiquement tous les langages ont des fonctions pour gérer les sockets...

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    non ceci est impossible dans son cas, puisque le 2ième programme il ne peut pas le modifier (matlab)..

    Par contre, un moyen simple pour un "dialogue" est qu'il doit y avoir un moyen de faire fonctionner matlab via un script / batch / fichier de commande..

    Il suffit alors d'écrire ce fichier de commande, et d'appeller la fonction system() en C...

    Ou si on ne veut pas faire une suite de commandes mais simplement lancer le programme avec des paramètres comme je l'ai déjà dit la fonction system() en C, et je suis certain qu'elle existe avec d'autres langages...

    fonction system()

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par SmileSoft Voir le message
    Merci pour votre aide
    ça dépend en quel langage, sous quelle plateforme, avec quelle architecture voulue ?

    Les programmes sur la même machine, ou sur des machines distantes ?

    Sur quel os ?


    par exemple en C il y a la fonction system(), et on lui passe en chaine de caractères les paramètres et le nom du programme :

    prog1

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    status = system ( "prog2 param.txt  ....&");

Discussions similaires

  1. Débutant, Communication entre deux programmes
    Par Madalen dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2007, 22h27
  2. Réponses: 2
    Dernier message: 09/06/2006, 19h34
  3. [TP] Echanger des données entre deux programmes
    Par ILIAS Raphaël dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 22/03/2005, 09h31
  4. Réponses: 7
    Dernier message: 30/12/2004, 12h01
  5. [jsp][servlet]passage de paramètre entre deux frames
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 29/06/2004, 11h14

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