2013-12-18 2 views
1

У меня есть приложение C#, которое вызывает exe-файл. Ниже код я использовал для вызова процесса:как читать выходное сообщение из процесса

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.EnableRaisingEvents = false; 
proc.StartInfo.FileName = "ContasillabeGame"; 
proc.StartInfo.Arguments = numeroSillabe + " " + numeroToken; 
proc.OutputDataReceived += new DataReceivedEventHandler(OutputToTextArea); 
proc.Start(); 
// Start the asynchronous read of the sort output stream. 
proc.WaitForExit(); 

А вот метод, используемый для получения данных, извлеченных из процесса.

private void OutputToTextArea(object sendingProcess, DataReceivedEventArgs outLine) 
{ 
    // Collect the sort command output. 
    if (!String.IsNullOrEmpty(outLine.Data)) 
    { 
     System.Console.WriteLine(outLine.Data); 
    } 
} 

С помощью этого кода я запускаю приложение ContasillabeGame, но у меня нет результата от этого приложения. Зачем? Для отправки сообщения с ContasillabeGame я использую этот код

Пример кода для отправки сообщения:

System.Console.WriteLine("pippo"); 
+0

Вы установили 'EnableRaisingEvents' в false, а затем удивляетесь, когда события никогда не поднимаются. Это не должно быть сюрпризом. – Servy

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

0

Вы Шоуда установить proc.StartInfo.RedirectStandardOutput в true перед началом процесса, и вызвать proc.BeginOutputReadLine();Start() после вызова.

Смежные вопросы