C# : как запустить внешнее приложение с перехватом std out ?

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 720
Благодарностей
1 377
Баллы
113
Всем привет.

Собственно вопрос обозначен в теме.

Про стандартный кубик для запуска внешних программ естественно знаю и про галочку в нем Записать STD OUT то же знаю .... вот только не записывает у меня на 5.33 . Точнее записывает но не до конца т.к вылетает по таймауту. Команда которая выполняется секунды при включенной галочке записи STD OUT вылетает по таймауту в 1000 сек ;-) а в переменной где должен быть результат, он присутствует процентов на 50-70 и обрывается .... в общем сами понимаете не вариант.

Думаю может на C# есть какой-нибудь надежный способ?
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 720
Благодарностей
1 377
Баллы
113
Сам спросил и сам нашел решение.

C#:
string strCommand = "сюда пишем команду";
string strCommandParameters = "сюда пишем параметры";

//Create process
System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
//strCommand is path and file name of command to run
pProcess.StartInfo.FileName = strCommand;
//strCommandParameters are parameters to pass to program
pProcess.StartInfo.Arguments = strCommandParameters;
pProcess.StartInfo.UseShellExecute = false;
//Set output of program to be written to process output stream
pProcess.StartInfo.RedirectStandardOutput = true;  
// скрыть отображение окна выполнения
pProcess.StartInfo.CreateNoWindow = true;
//Optional
//pProcess.StartInfo.WorkingDirectory = strWorkingDirectory;
//Start the process
pProcess.Start();
//Get program output
string strOutput = pProcess.StandardOutput.ReadToEnd();
//Wait for process to finish
pProcess.WaitForExit();

// в strOutput имеем std out
 
  • Спасибо
Реакции: kane16 и molotok

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)