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 :

communication entre programmes


Sujet :

C

  1. #1
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut communication entre programmes
    Bonjour, j'ai 2 questions
    1) Comment appeler un programme depuis un autre ?
    2) Comment savoir dans un programme quel est le programme qui l'a appelé (le nom de l'exe, pas le PID) ?
    Ceci sous windows
    Si vous pouviez me donner quelques pistes, je demande pas forcément tout le code
    Merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut !

    1) Comment appeler un programme depuis un autre ?

    Prog A veut lancer B:
    dans A:
    CreateProcessus () en indiquant l'exe B et son chemin ...

    2) Comment savoir dans un programme quel est le programme qui l'a appelé (le nom de l'exe, pas le PID) ?
    Comment B peut savoir que A l'a lancé:
    Ben ... tu appelles B avec A en argument:
    CreateProcessus (....,..,"B A",...);

    La programmation c'est génial !
    ... quand ça marche!

  3. #3
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut
    Alors merci pour ta réponse mais...
    1) elle se trouve dans quel header cette fonction CreateProcessus ?

    2) je suis pas sûr qu'on se soit compris
    imaginons a.exe, b.exe, c.exe qui peuvent tous les 3 lancer d.exe
    imaginons que d.exe écrive dans un fichier le nom de l'exe qui l'a appelé, donc en fait moi je ne vois le résultat que dans le fichier
    comment d peut-il savoir si c'est a, b ou c qui l'a lancé ?

  4. #4
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 84
    Points : 89
    Points
    89
    Par défaut
    lorsque tu ecris un prog, tu peux recuper les parametres qui ont ete ecris.
    ex:
    monprog -param


    et bien dans ta fonction main:
    int main(int argc //nb parametre
    ,char ** argv //les parametre
    ){
    //tu recupere les parametre comme ca
    char * mesparam=argv[1];//ici le premier param
    //enfin faut faire des test genre if (argc>1) mesparam=argv[1]

    }
    donc quand tu appelle d.exe a partir de a.exe,
    tu fait
    CreateProcessus("d.exe a.exe");
    //enfin la je suppose car je ne connais pas cette fonction mais d'une autre maniere:
    system("d.exe a.exe");

  5. #5
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut on progresse mais...
    donc quand tu appelle d.exe a partir de a.exe,
    tu fait
    CreateProcessus("d.exe a.exe");
    //enfin la je suppose car je ne connais pas cette fonction mais d'une autre maniere:
    system("d.exe a.exe");
    en fait mon pb vient justement du fait que a.exe ne va pas forcément appeler d.exe en lui passant des paramètres
    genre dans a.exe tu n'auras que
    comment dans ce cas alors savoir que c'est a.exe qui a appelé d.exe et pas un autre programme ?

  6. #6
    DrQ
    DrQ est déconnecté
    Membre expérimenté
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Points : 1 515
    Points
    1 515
    Par défaut
    Si tu n'as pas de paramètre tu as peu de chance de savoir qui l'a éxécuté.
    Il y a peut être un moyen en utilisant de la mémoire partagée mais ça fait faire du code pour rien et te complexifie la chose.

    Si ton problème est "j'ai un exe qui se lance et je sais pas comment". Une seule solution est de pister tous les exe et de voir les dll et exe appelés.

    Voilà bon courage...
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  7. #7
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut
    Si ton problème est "j'ai un exe qui se lance et je sais pas comment".
    c'est exactement ça

    Une seule solution est de pister tous les exe et de voir les dll et exe appelés.
    t'aurais pas un début de piste un peu plus explicite ?

    merci

  8. #8
    DrQ
    DrQ est déconnecté
    Membre expérimenté
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Points : 1 515
    Points
    1 515
    Par défaut
    Si tu te connais pas trop mal en info, voilà ce que je te propose pour commencer.
    Première chose vas voir dans ta base des registres si y a pas un prog dans le Run qui se lance au démarrage. Ensuite regarde la liste des services qui se lancent au démarrage. Si tu as rien d'anormal la dedans ça se complique.

    Si tu te souviens à partir de quand ça a commencé, regarde les softs que t'as installé vers cette periode. Ensuite avec Visual C++ ou Builder C++ il y a un outil de spy (mais je ne l'ai jamais utilisé) qui permet de savoir que tel programme utilise tel autre programme ou DLL ainsi tu peux remonter à la source de ton problème. Mais ce n'est pas simple.

    Si tu as un antivirus à jour, et un bon firewall et rien d'anormal. Sauvegarde tes données (soit sur qu'elles ne soient pas vérolées) reformate tout et reinstalle. C'est le plus rapide.

    Bonne chance
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  9. #9
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut
    Je n'ai ni Visual C++, ni Borland C++ donc on oublie le spy.
    Et puis moi j'esperais une réponse d'ordre général, pas appliquée à un cas particulier. Oui je peux tout reformater (ce que je vais faire puisque je change de DD) mais je voulais comprendre et savoir si c'est possible.
    M'enfin bon, merci quand même

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Les programmes que tu veux appeler, s'agit-il de programmes de d'autres programmeurs, ou bien les tiens? car si tu a les sources, tant qu'à moi, cest bcp moins compliquer de passé par des fonctions! mais si cest pas le cas, dit-le jvais faire ma petite recherche.
    Bonhome7h

    Pour m'aider dans la construction de mon site, contacter moi.

  11. #11
    Membre éprouvé
    Avatar de jérôme
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 591
    Points : 1 071
    Points
    1 071
    Par défaut
    en fait mon pb c'est que j'ai IIS sur mon pc et quand je me connectais à internet, je voyais ensuite dans les fichiers de log que qq'un essayait de lancer l'interpréteur de commande et d'autres exécutables à travers IIS, donc je voulais créer un prog qui récupère le nom du prog qui le lancait, pour savoir quel était ce prog qui m'emmerdait, mais en fait c'est + simple que ça, paske je dois pas avoir de trojan ou autre merde sur mon pc, mais c'est plutôt carrément sur le fournisseur d'accès qu'il se trouve puisque j'ai tout réinstallé et que ça a recommencé, donc au mieux je récupérerai le processus de IIS comme prog, donc je vais résoudre le pb en prévenant mon fournisseur d'accès.
    Maintenant, si tu as des infos d'ordre général, je suis preneur.
    Merci

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    certain firewall permettre de savoir de qui vient l'introduction du système, mais pour ce qui est du programme, messemble qu'il y en a aussi! si tu veux te créer un firewall, fait une recherche, plusieurs tuts sont disponibles

    en tk, pour la sécurité internet, je ne suis pas un expert, mais pour la prog, si tu as quelques problemes je suis là.

    @+
    bonhome7h
    Bonhome7h

    Pour m'aider dans la construction de mon site, contacter moi.

  13. #13
    DrQ
    DrQ est déconnecté
    Membre expérimenté
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Points : 1 515
    Points
    1 515
    Par défaut
    Dejà vérifie que tu es les derniers patches de IIS car c'est un vrai festin pour les pirates. Des trous de sécurités à ne pas savoir quoi en faire.
    Avec un bon firewall tu devrais deja limiter la casse, du style pas de reponse à un ping, ce qui déjà éloigne les pirates. Actuellement je subits environ 1000 attaques toutes les deux ou trois heures. Et oui y a du monde qui fait du scan port.

    Surtout récupère les dernières maj de IIS pour virer les trous de secu les plus connus. Pour les détails voir les tutoriels et cours de formation pour apprendre le langage C : http://c.developpez.com/cours/
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

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

Discussions similaires

  1. Communication entre programme C++ et PayPal
    Par ValyGator dans le forum C++
    Réponses: 4
    Dernier message: 27/10/2009, 16h17
  2. Communication entre programmes
    Par pdgnr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/08/2007, 17h33
  3. Réponses: 4
    Dernier message: 13/06/2007, 17h41
  4. communication entre programme
    Par nixonne dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/06/2006, 13h35
  5. communication entre programmes
    Par nixonne dans le forum C++
    Réponses: 11
    Dernier message: 16/06/2006, 20h04

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