Alors voila le problème:
J'ai une appli .NET qui lance un process dont j'aimerais 1-récuperer les sorties dans mon appli et 2-lui envoyer des entrées depuis mon appli.
Si le process fait des sorties sans demander d'entrée, pas de souci j'y arrive. S'il attend des entrées sans faire de sortie pas de problème non plus. Par contre, s'il mélange les 2, rien ne va plus. S'il fait une sortie puis attend une entrée, je n'arrive pas à capturer la sortie ni à envoyer une entrée.
Quelqu'un aurait une idée pour résoudre ça ?
Mon code de test:
Code :
- class Program
- {
- static void Main(string[] args)
- {
- System.Diagnostics.Process proc = new System.Diagnostics.Process();
- proc.StartInfo.FileName = "perl.exe";
- proc.StartInfo.Arguments = "test.pl";//"install Crypt-SSLeay/Crypt-SSLeay-0.51.ppd";
- proc.StartInfo.UseShellExecute = false;
- proc.StartInfo.RedirectStandardInput = true;
- proc.StartInfo.RedirectStandardOutput = true;
- proc.StartInfo.RedirectStandardError = true;
- proc.Start();
- System.IO.StreamWriter Writer = proc.StandardInput;
-
- String outputText;
- String err;
-
- while (!proc.HasExited)
- {
- outputText = proc.StandardOutput.ReadLine();
- err = proc.StandardError.ReadLine();
- //et pourtant rien ne s'affiche
- Console.WriteLine(outputText);
- Console.WriteLine(err);
- //et l'entrée n'arrive pas au process
- Writer.WriteLine("yes" );
- Writer.Flush();
- }
- Writer.Close();
- proc.Close();
- Console.ReadKey();
- }
- }
|
---------------
©2008 Bleuarff Corp.