2016-02-19 9 views
0

Я работаю над программой C#, чтобы зацикливаться на своих ТВ-шоу (.wtv) в Windows Media Center и преобразовывать их с помощью ручного тормоза cli. Я просто получил все, чтобы работать сейчас, и я хотел также использовать функцию -scan, чтобы я мог настраивать аудио и видео аргументы на основе входного файла, а не устанавливать статику.Как получить результат от handbrakecli --scan?

Это то, что у меня есть до сих пор для сканирования, но я не могу найти, где данные выводятся в окно консоли.

var p = new Process(); 
var pSI = new ProcessStartInfo(); 
pSI.RedirectStandardOutput = true; 
pSI.UseShellExecute = false; 
pSI.FileName = HandBrakeLocation; 
pSI.Arguments = string.Concat(@"--scan -i ", '"', inputFile, '"'); 
pSI.WindowStyle = ProcessWindowStyle.Hidden; 
p.StartInfo = pSI; 
p.Start(); 
var stdout = p.StandardOutput;//streamreader 
p.WaitForExit(); 

Я думал, что, возможно, p.StandardOutput пошлёт консольный вывод в переменную стандартный вывод StreamReader, но я не мог найти его в любом месте внутри объекта. Что мне не хватает?

Спасибо за ваше время и помощь.

ответ

0

Вы можете прочитать выходные данные программы, используя свойство StandardOutput процесса (который поток):

var output = stdout.ReadToEnd(); 
p.WaitForExit(); 

Более подробную информацию можно найти на сайте MSDN: https://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput%28v=vs.110%29.aspx

+0

Спасибо, но я старался, что и значение в «output» было пустой строкой. Мне была предоставлена ​​следующая ссылка от коллеги (который, по его словам, является ответом на мои молитвы), что я попробую, когда вернусь домой. http://stackoverflow.com/questions/285760/how-to-spawn-a-process-and-capture-its-stdout-in-net – user3071434