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 :

[C#] Comment interagir avec un EXE externe ?


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 85
    Points : 62
    Points
    62
    Par défaut [C#] Comment interagir avec un EXE externe ?
    Bonjour,

    Je souaite invoquer depuis mon code une méthode se trouvant dans un excutable compilé, dont je connais la signature.

    J'ai bien trouvé une manière de procéder:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Process p = new Process();
                p.StartInfo.FileName = "monExe.exe";
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.Arguments = "argument";
                p.Start();
    Mais ma méthode comporte un paramètre de retour, l'invocation en lui passant les arguments (ci-dessus) n'est donc pas suffisante...

    Quelqu'un peut-il m'orienter sur comment faire ceci? Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 85
    Points : 62
    Points
    62
    Par défaut
    J'ai trouvé une ébauche de solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Type t = Type.GetTypeFromProgID("monExe.maClasse", false);
                object instance= Activator.CreateInstance(t);
                string[] arguments=new string[]{"arg1", "arg2", "arg3", "arg4"};
                bool result=(bool)t.InvokeMember("maMethode", System.Reflection.BindingFlags.InvokeMethod, null, instance, arguments);
    Mais ça ne fonctionne pas dès la première ligne...

  3. #3
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Change ta première ligne par un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Assembly myassembly = Assembly.LoadFile(nom-de-ton-exe);
    myassembly.GetType(nom-de-ton-type);
    Sinon le reste est OK.

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

Discussions similaires

  1. Comment interagir avec une iframe
    Par CactO_o's dans le forum jQuery
    Réponses: 7
    Dernier message: 11/01/2010, 09h41
  2. TEdit: Comment interagir avec le logiciel ?
    Par ornitho dans le forum Débuter
    Réponses: 9
    Dernier message: 17/11/2008, 14h50
  3. [VS2003] Débugger des DLLs avec un .exe externe
    Par Vonziz dans le forum Visual Studio
    Réponses: 4
    Dernier message: 22/08/2008, 16h50
  4. Comment intéragir avec cmd.exe ?
    Par exempt154 dans le forum C++
    Réponses: 3
    Dernier message: 04/01/2008, 22h14
  5. comment interagir avec mysql
    Par mathlouthi dans le forum SGBD
    Réponses: 1
    Dernier message: 24/04/2007, 16h42

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