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 :

Comment garder un process alive dans un prompt ?


Sujet :

C#

  1. #1
    Battosaiii
    Invité(e)
    Par défaut Comment garder un process alive dans un prompt ?
    Bonjour,

    Avec le code ci dessous je peux appeler un executable dans une fenetre mais pour une duree tres courte. Comment faire pour avoir un log du resultat de la commande ? Ou bien comment faire pour que cette fenetre reste longtemps ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     String javalaunch = "\"" + Environment.GetEnvironmentVariable("JAVA_HOME") + "\\bin\\java\"";            
     myProc = Process.Start(javalaunch, licenseFile);
    merci d'avance !!

  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
    myProc.WaitForExit();

  3. #3
    Battosaiii
    Invité(e)
    Par défaut
    Nan ca fait rien de plus. Pourtant je suis dans le debugger et j'avance pas a pas dans le code. Quand j'execute java.exe depuis le code la fenetre se detruit automatiquement.

    myProc = Process.Start(javalaunch, licenseFile);

    Comment utiliser cette fonction pour inclure des arguments ?

  4. #4
    Membre averti Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Points : 332
    Points
    332
    Par défaut
    slt..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    System.Diagnostics.Process proc = new System.Diagnostics.Process();
       	  proc.StartInfo.UseShellExecute = false;
       	  proc.StartInfo.RedirectStandardOutput = true;
              proc.StartInfo.FileName = "Ton_appli.exe";
              proc.StartInfo.Arguments = " Tes_arguments";
     
             proc.Start();
    	 string output = proc.StandardOutput.ReadToEnd();
    MessageBox.Show(output);  // POUR VOIR LES DONNEES DE SORTIE
             proc.WaitForExit();
             proc.Close();
    Si j´ai bien compris ce que tu veus..

  5. #5
    Battosaiii
    Invité(e)
    Par défaut
    MessageBox comment tu le definis ? D'apres la doc il faut utiliser la Directive :
    using System.Windows.Forms;

    Or mon visual studio ne reconnait pas Sysem.Windows.Forms !!!
    Cela veut probablement dire que cette assembly n'est pas dans le GAC (list of assemblies).J'ai bon ? Comment ajouter un assembly au gac ? et surtout ou puis je trouver ce dll ?

    Je crois que la commande gacutil /if nom.dll ajoute un assembly au gAC. Donc ca resolut mon probleme...

    Mais bon je suis debutant en c# donc je fais peut etre des theories fumeuses ?Deja est ce que c'est comprehensible ?

  6. #6
    Membre averti Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Points : 332
    Points
    332
    Par défaut
    slt...

    remplace le MessageBox.Show(output), par
    Console.WriteLine(output);

    Si il ne reconnais pas Sysem.Windows.Forms, cela doit etre a cause de ton project.. T´as un project Console ou Winform ?

    Pour adicionner les assemblys, tu as : add reference ... surement sur l´option project... moi j´ai pas Visual Studio..

  7. #7
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Une fois qu'on a écrit "using System.Windows.Forms", il ne faut pas oublier d'ajouter la référence à System.Windows.Forms.dll au projet.

    Aussi, au lieu du MessageBox(), tu peux faire Console.WriteLine(output);

    (tu as les réponses en stéréo... on arrête pas le progrès)
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/02/2013, 16h15
  2. [Joomla!] Comment garder mes anciens liens dans mon site
    Par developper2006 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 02/01/2011, 15h53
  3. Réponses: 7
    Dernier message: 07/05/2009, 13h09
  4. Réponses: 1
    Dernier message: 21/11/2007, 15h35
  5. [C#] Comment lancer un process dans cmd.exe ?
    Par freddyboy dans le forum C#
    Réponses: 2
    Dernier message: 23/01/2006, 12h45

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