Проблемы с получением желаемого результата от Process.Start ()
Я работаю над приложением, которое вызывает несколько приложений командной строки для последующей обработки некоторых видеофайлов.
Щас пытаюсь использоватьComskip идентифицировать рекламные ролики в видеозаписи с моего тюнера кабельной карты. Это работает нормально, но у меня проблемы с получением нужного мне экрана.
String stdout = null;
using (var process = new Process())
{
var start = new ProcessStartInfo(comskip, cmdLine);
start.WindowStyle = ProcessWindowStyle.Normal;
start.CreateNoWindow = true;
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
process.StartInfo = start;
process.Start();
process.WaitForExit();
stdout = process.StandardOutput.ReadToEnd();
}
Я ожидаюstdout
захватывать то, что отображается на экране, так же, как при запуске приложения вручную (снимок экрана ниже), который представляет собой непрерывную подачу того, что делает приложение, и в выходных данных смешаны строки, которые дают% прогресса, который я хочу использовать для обновления индикатора выполнения
Но выполнение приведенного выше кода только дает мне:
Используемая командная строка была:C: \ Users \ Chris \ Google Drive \ Tools \ ComSkip \ comskip.exe " "C: \ Users \ Chris \ Desktop \ ComSkip Tuning Files \ Modern Family.wtv " "--ini = C: \ Users \ Chris \ Desktop \ Файлы настройки ComSkip \ comskip_ModernFamily.ini "
Установка ini-файла в C: \ Users \ Chris \ Desktop \ Comskip Tuning Files \ comskip_ModernFamily.ini согласно командной строке. Использование C: \ Users \ Chris \ Desktop \ ComSkip Tuning Files \ comskip_ModernFamily.ini для значений инициации.
Я также попытался перенаправитьStandardError
поток и захватprocess.StandardError.ReadToEnd();
но процесс, кажется, зависает, если я запускаю с этими параметрами.
Я что-то упустил, чтобы захватить то, что яЯ надеюсь, или это возможно, что выходной поток для этого приложения идет в другом месте, которое не доступно?