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

Dotnet Discussion :

Lancement d'un .exe avec C# - chemin relatif?


Sujet :

Dotnet

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 39
    Points : 22
    Points
    22
    Par défaut Lancement d'un .exe avec C# - chemin relatif?
    Bonjour à tous,

    Je souhaite lancer un .exe depuis un WebService C#. J'ai jeté un oeil sur le net comment faire, et en appliquant ce que j'ai trouvé, pour le moment j'appelle mon programme de la façon suivante :

    Code C dièse :p : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    using System.Diagnostics;
    (...)
     
    // Dans mon service web :
    Process proc = new Process();
    proc.StartInfo = new ProcessStartInfo("C:/<mon_chemin_absolu>/<mon_programme>.exe");
    proc.Start();
    proc.WaitForExit();

    Et mon programme est bien exécuté, super. Seulement, j'aurais aimé pouvoir préciser un chemin relatif et non un chemin absolu, afin de pouvoir intégrer le .exe en question dans un webservice VS. Est-ce qu'il y a un moyen de faire ça? Par exemple, si j'inclus le .exe dans le App_Data de mon WS, et qu'après j'ai une variable pour pouvoir écrire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProcessStartInfo(APP_DATA_PATH_DE_MON_WEBSERVICE_TRUCMUCHE + "/<mon_programme>.exe");
    Désolé si ma question n'est pas très claire, en espérant qu'il y en a quand même qui l'ont comprise et qui auraient des éléments de réponse

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Server.MapPath(chemin relatif) retourne un chemin absolu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ProcessStartInfo(Server.MapPath("App_Data/") + "<mon_programme>.exe");

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Ah oui tiens. Merci, ça marche.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    OK, alors je savais bien que j'avais 2 questions en fait, et la seconde vient de me revenir. J'espère que ça ne pose pas de problème que je pose la question à la suite, sinon je créerai un nouveau sujet.

    L'exe que je veux exécuter retourne une valeur qui vaut 1 ou 0, et j'ai besoin de récupérer cette valeur dans mon programme. Or avec la commande ProcessStartInfo je ne connais pas la syntaxe (si elle existe) pour cela.

    J'ai essayé d'utiliser la commande StandardOutput après avoir cherché des infos sur le net, de la façon suivante :

    Code <mon_prgm>.exe : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class Program
    {
      public static int Main(string[] args)
      {
        // fait des trucs
     
        Console.WriteLine("test");
     
        if(tout baigne)
          return 0;
        else
          return 1;
      }
    }
    Code C# : 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
    19
    20
    ProcessStartInfo processStartInfo = new ProcessStartInfo(<mon_prgm>.exe, <mes_args>);
    processStartInfo.UseShellExecute = false;
    processStartInfo.ErrorDialog = false;
     
    processStartInfo.RedirectStandardOutput = true;
     
    Process process = new Process();
    process.StartInfo = processStartInfo;
    bool processStarted = process.Start();
     
    StreamReader outputReader = process.StandardOutput;
     
    process.WaitForExit();
     
    string out_line;
    string out_line_tot = "";
    while ((line = outputReader.ReadLine()) != null)
      line_tot += line;
     
    return "out  = " + line_tot;

    Mais au lieu de me retourner 0 ou 1, cela me retourne le contenu du console.writeline()... donc fausse piste.

    Quelqu'un aurait des infos?

    merci

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Process.ExitCode

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Bon, ben encore une réponse rapide. Merci

    PS : désolé pour le niveau faible des question hein, je débute. Dans quelques temps je me dirai "t'ain mais c'est bidon tout ça"

    enfin j'espère.

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

Discussions similaires

  1. new File, appeler avec un chemin relatif
    Par Lord Yu dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 30/06/2009, 13h05
  2. Travailler avec un chemin relatif
    Par Spont dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 22/04/2009, 19h12
  3. Supprimer un fichier avec un chemin relatif
    Par Aquellito dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/01/2009, 19h00
  4. JasperReport problème avec les chemins relatif
    Par baradoss dans le forum Jasper
    Réponses: 3
    Dernier message: 15/07/2008, 10h15
  5. [Visual C++]probleme avec un chemin relatif
    Par bouba83 dans le forum MFC
    Réponses: 28
    Dernier message: 20/05/2006, 00h22

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