У меня есть приложение, которое запускается, а затем читает стандартный вывод консольного процесса. В этом процессе консоли я вызываю некоторые DLL-файлы, которые пишут на консоль .. но я не хочу захватывать эти сообщения, я просто хочу захватить выводную строку, которую они отправляют.Как захватить только одну строку из процесса консоли?
Я пытался делать:
verboseMethod(); //method writting things into the console
output = dllMethod(); //method returning what I want
Console.Clear();
Console.Out.Write(output)
Я делаю это так, я считаю, что я читаю все, прежде чем Console.Clear() выполняет:
exeProcess.BeginOutputReadLine();
string errString = exeProcess.StandardError.ReadToEnd();
Можете ли вы дать мне альтернативу этому? Например, подождите, пока не появится последнее выходное сообщение или что-то в этом роде?
EDIT
Я считаю, что то, как это помогло бы (если он есть) .. я могу сказать, консоль не перенаправить вывод или не писать ничего в определенной точке, а затем позволить ему написать еще раз в коде? Как:
Console.CloseBuffer();
Console.OpenBuffer();
Что вы можете сделать, это перенаправить вывод в поток, а затем прекратить чтение («захват») из этого потока, когда у вас есть то, что вам нужно. – redtuna