C # как вы можете получить вывод другого командного файла? - PullRequest
5 голосов
/ 11 октября 2008

Мне нужно использовать другое приложение (консоль), чтобы передать какой-либо параметр этой программе, и внутри моей программы на C # получить вывод этой программы. Я бы не хотел видеть консоль (все невидимо для пользователя). Как я могу это сделать?

1 Ответ

16 голосов
/ 11 октября 2008
Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("YOUPROGRAM_CONSOLE.exe" );
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();

StreamReader myStreamReader = myProcess.StandardOutput;
string myString = myStreamReader.ReadLine();
Console.WriteLine(myString);
myProcess.Close();

Источник: MSDN

Отредактировано: Если вам требуется получить сообщение об ошибке, вам необходимо использовать асинхронную операцию. Вы можете использовать асинхронные операции чтения, чтобы избежать этих зависимостей и их потенциала взаимоблокировки. Кроме того, вы можете избежать условия взаимоблокировки, создав два потока и считав выходные данные каждого потока в отдельном потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...