В настоящее время я пытаюсь получить вывод исполняемого консольного приложения в другое. Если быть точным, небольшой обзор того, что я пытаюсь сделать:
У меня есть один исполняемый файл, который я не могу редактировать и не вижу его кода. При выполнении он записывает в консоль несколько (довольно много, если честно) строк.
Теперь я хочу написать еще один исполняемый файл, который запускает предыдущий и читает то, что он пишет.
Мне это кажется простым, поэтому я начал программировать, но в итоге получил сообщение об ошибке, в котором говорилось, что StandardOut has not been redirected or the process hasn't started yet.
Я попробовал это, используя эту структуру (С#):
Process MyApp = Process.Start(@"C:\some\dirs\foo.exe", "someargs");
MyApp.Start();
StreamReader _Out = MyApp.StandardOutput;
string _Line = "";
while ((_Line = _Out.ReadLine()) != null)
Console.WriteLine("Read: " + _Line);
MyApp.Close();
Я могу открыть исполняемый файл, и он также открывает тот, что внутри, но как только дело доходит до чтения возвращаемых значений, приложение вылетает.
Что я делаю не так?!