Я разрабатываю приложение Windows Forms, которое требует от меня вызова отдельной программы для выполнения задачи. Программа представляет собой консольное приложение, и мне нужно перенаправить стандартный вывод с консоли на TextBox в моей программе.
У меня нет проблем с выполнением программы из моего приложения, но я не знаю, как перенаправить вывод в мое приложение. Мне нужно захватить вывод во время работы программы с помощью событий.
Консольная программа не предназначена для остановки до тех пор, пока мое приложение не остановится и текст не будет изменяться в случайном порядке. То, что я пытаюсь сделать, это просто вывести из консоли консоль, чтобы вызвать обработчик событий, который затем может быть использован для обновления TextBox.
Я использую С# для кодирования программы и использования платформы .NET для разработки. Исходное приложение не является программой .NET.
EDIT: Вот пример кода того, что я пытаюсь сделать. В моем последнем приложении я заменил Console.WriteLine кодом для обновления TextBox. Я попытался установить точку останова в обработчике событий, и это даже не достигнуто.
void Method()
{
var p = new Process();
var path = @"C:\ConsoleApp.exe";
p.StartInfo.FileName = path;
p.StartInfo.UseShellExecute = false;
p.OutputDataReceived += p_OutputDataReceived;
p.Start();
}
static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(">>> {0}", e.Data);
}