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 :

Récupérer le retour d'un exécutable.


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 172
    Points : 68
    Points
    68
    Par défaut Récupérer le retour d'un exécutable.
    Bonjour,

    J'ai un programme écrit en c qui affiche si un nombre est premier ou non, je voudrais savoir s'il est possible avec c# de lancer ce programme et de récupérer le retour, par exemple 0 si le nombre entré en argument n'est pas premier et 1 s'il l'est.

    Je crois savoir que c'est possible mais je ne sais pas du tout comment procéder.

    Je veux utiliser le programme en c car il est utilise GMP et est beaucoup plus rapide que c#.

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 274
    Points
    34 274
    Par défaut
    Salut,

    apparemment oui c'est possible,

    un exemple de code qui va récupérer le resultat d'un exe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Process myApp = new Process(@"C:\some\dirs\foo.exe", "someargs");
    myApp.StartInfo.UseShellExecute = false;
    myApp.StartInfo.RedirectStandardOutput = false;
     
    myApp.Start();
     
    string output = myApp.StandardOutput.ReadToEnd();
    p.WaitForExit();
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 172
    Points : 68
    Points
    68
    Par défaut
    OK merci, ça a l'air d'être exactement ce dont j'ai besoin, je vais tester ça dès demain.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 172
    Points : 68
    Points
    68
    Par défaut
    J'ai essayer en réadaptant le code mais ça ne fonctionne pas, mon prog en c récupère en argument une chaine de caractère et return 1 si c'est un nombre premier et 0 si non. Dans mon programme c# j'ai fait un formulaire avec un champ texte, un bouton et deux case à cocher. Le but c'est si je clique sur le bouton il récupère le nombre entré dans le champ texte, lance le programme c avec le nombre en argument, récupère le retour du programme et coche la case correspondante à la réponse. Je n'ai pas d'erreur qui s'affiche mais je n'arrive pas à récupérer la valeur de retour du programme pour l'exploiter dans mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     private void button1_Click(object sender, EventArgs e)
            {
                nb = textBox1.ToString();
                Process myApp = new Process() ;
                myApp.StartInfo.FileName = "p:\\gmp\\isprem.exe" ;
                myApp.StartInfo.Arguments = nb;
                myApp.StartInfo.UseShellExecute = false;
                myApp.StartInfo.RedirectStandardOutput = true;
                myApp.Start();
                output = myApp.StandardOutput.;
     
                myApp.WaitForExit();
     
                textBox1.Text = output.ToString();
                if(output.ToString() == "1") {checkBox1.Checked = true; checkBox2.Checked=false; }
                else{checkBox1.Checked = false; checkBox2.Checked=true;}
            }
    Si vous avez une idée ?
    Merci.

Discussions similaires

  1. Où récupérer le retour de cette requête ?
    Par nerillis dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 10/07/2007, 09h52
  2. Récupérer un erreur sur l'exécution d'un trigger
    Par tchoimars dans le forum PL/SQL
    Réponses: 1
    Dernier message: 06/06/2007, 16h07
  3. récupérer le retour d'une commande
    Par dams78 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 15/03/2007, 08h28
  4. Comment récupérer la version d'un exécutable ?
    Par bib34690 dans le forum Langage
    Réponses: 2
    Dernier message: 19/09/2005, 18h20
  5. [MFC?] Comment récupérer la directory de l'exécutable?
    Par bigboomshakala dans le forum MFC
    Réponses: 9
    Dernier message: 14/05/2004, 15h22

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