C# Как отобразить все сообщения внешнего консольного приложения в поле расширенного текста - PullRequest
0 голосов
/ 19 февраля 2020

Как прочитать все сообщения, отправленные из внешнего консольного приложения, и отобразить их в текстовом поле

У меня есть проект форм C# windows, который запускает внешнее консольное приложение. У меня есть код ниже, который отображает сообщения из приложения в поле расширенного текста, но он не отображает всю информацию или сообщения об ошибках. Я нашел много примеров, которые утверждают, что это можно сделать, но это отображается в консоли, и я не смог найти способ преобразовать это для отображения в поле расширенного текста.

Возможно ли преобразовать приведенный ниже код для отображения всех сообщений и ошибок?

string strParameters;
strParameters = "-p " + CmboDeviceList.Text;
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = TxtPathToExtApp.Text;
startInfo.Arguments = strParameters;
startInfo.CreateNoWindow = true;
process.StartInfo = startInfo;
process.Start();                        
string output = process.StandardOutput.ReadToEnd();
RtxtExtAppOutput.Text = output;
process.WaitForExit();

Обновление: благодаря указателю от Лекса Ли я теперь решил эту проблему.

string strParameters;
strParameters = "-p " + CmboDeviceList.Text;
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.FileName = TxtPathToExtApp.Text;
startInfo.Arguments = strParameters;
startInfo.CreateNoWindow = true;
process.StartInfo = startInfo;
process.Start();                        
string output = process.StandardOutput.ReadToEnd() + process.StandardError.ReadToEnd();
RtxtExtAppOutput.Text = output;
process.WaitForExit();
...