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 Discussion :

Appel de programme


Sujet :

C

  1. #1
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut Appel de programme
    Estil possible d'esvoyer qqc a un programme console apps en C sous windows quand on l'appelle a partir d'un autre programme?

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Oui soit:
    -avec l'opérateur de redirection "<" et il faudra prélever les données sur "stdin",
    -avec la ligne de commande, il suffit alors de récupérer les données dans le tableau prévu à cet effet.

  3. #3
    Membre émérite Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Par défaut
    Citation Envoyé par seriousme
    Oui soit:
    -avec l'opérateur de redirection "<" et il faudra prélever les données sur "stdin",
    -avec la ligne de commande, il suffit alors de récupérer les données dans le tableau prévu à cet effet.
    Wouah....tu parles couramment le "mironais" toi !!!!
    Moi, je dois être un peu dyslexique dans ma tête, parceque franchement je n'ai rien compris à la question....

  4. #4
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Tu peux passer des parametres au programme appelé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("programme param1 param2");
    Sinon ya les FIFO pour la communication interprocessus

  5. #5
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par Gruik
    Tu peux passer des parametres au programme appelé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("programme param1 param2");
    Sinon ya les FIFO pour la communication interprocessus
    Programma param1 param2 c quoi ca?
    Sinon merci a tous

  6. #6
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Et pour recevoir?
    Du programme apelé?

  7. #7
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Avec:
    int argc:nombre de paramètres,
    char *argv[]:liste des paramètres.

  8. #8
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main (int argc, char * argv[]) {
     
    }
    Note que la liste d'arguments comprend aussi le nom du programme appelé

    Ex : pour l'appel "programme param1 param2"
    argc = 3
    argv = {"programme", "param1", "param2"};
    (pour schematiser)

  9. #9
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par Gruik
    oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main (int argc, char * argv[]) {
     
    }
    Note que la liste d'arguments comprend aussi le nom du programme appelé

    Ex : pour l'appel "programme param1 param2"
    argc = 3
    argv = {"programme", "param1", "param2"};
    (pour schematiser)
    Je suis perdu, c'est pour apeler ou recevoir?
    VOus puriez pas me metres les 2 cote a cot?

  10. #10
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Pour appeler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     system("prog_a_appeler.exe param_1 param_2 ... param_n");
    Pour recevoir:
    il suffit de lire les parametres dans le tableau de n+1 éléments "argv".

  11. #11
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par miron
    Estil possible d'esvoyer qqc a un programme console apps en C sous windows quand on l'appelle a partir d'un autre programme?
    Cette question a déja été traitée maintes fois ; voir les forums VC++, dev windows et faire une recherche

    Il faut obtenir le HINSTANCE et HANDLE du programme à appeler avec FindWindow/Ex et éventuellement EnumWindows.

    Après avoir obtenu le HANDLE , utiliser SendMEssage et envoyer un message personnalisé

  12. #12
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par seriousme
    Pour appeler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     system("prog_a_appeler.exe param_1 param_2 ... param_n");
    Pour recevoir:
    il suffit de lire les parametres dans le tableau de n+1 éléments "argv".
    J'ai des pb, windows me dit que mon prog a rencontrer un pb et doit fermer....
    Je n'ai pas du tout comprendre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
      system("Ecoutez-moi.exe 22");
      system("PAUSE");    
      return 0;
    }
    mon prog apelant...
    mon prog apelé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int main(int argc, char *argv[])
    {
     if (*argv[2]!=22)
         exit(0);
    ...
    }

  13. #13
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    C'est argv[1] et il faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (strcmp(argv[1],"22")!=0)

  14. #14
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par seriousme
    C'est argv[1] et il faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (strcmp(argv[1],"22")!=0)
    Merci.

  15. #15
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par miron
    Estil possible d'esvoyer qqc a un programme console apps en C sous windows quand on l'appelle a partir d'un autre programme?
    Les sorties stdout de l'appelant servent d'entrées stdin à l'appelé.
    Exemple courant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\> type unlongtexte.txt | more
    Au lieu de sortir le texte d'un coup à l'écran, il sort par bloc de N lignes avec une pause...

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

Discussions similaires

  1. Appel sous programme
    Par sam.fet dans le forum Linux
    Réponses: 2
    Dernier message: 17/08/2006, 12h20
  2. Appeler un programme à partir d'eclipse
    Par Jahjouh dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/05/2006, 23h00
  3. Appeler un programme sur le poste client avec <object>
    Par ouioui2000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/08/2005, 14h40
  4. [Kylix] pb d'appel de programme externe
    Par wizwiz dans le forum EDI
    Réponses: 2
    Dernier message: 27/08/2004, 09h29
  5. [langage] appel de programmes exterieurs
    Par martijan dans le forum Langage
    Réponses: 34
    Dernier message: 07/07/2003, 10h40

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