cmdProcess = new Process();
var procStartInfo =
new ProcessStartInfo( "cmd", "/k " );
procStartInfo.RedirectStandardOutput = true;
procStartInfo.RedirectStandardInput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
procStartInfo.CreateNoWindow = true;
cmdProcess.OutputDataReceived += ( s, e ) => {
Console.WriteLine( e.Data + "\n" );
};
cmdProcess.StartInfo = procStartInfo;
cmdProcess.Start();
cmdProcess.BeginOutputReadLine();
Этот код возвращает вывод, только при переносе строки.
Как можно получить real-time вывод, например из таких программ как Far Manager ?
Мне скорее всего нужен т.н. screen buffer или что-то типа того
И еще вопрос, как можно послать в такой консольный процесс CTRL+C ?
cmdProcess.StandardInput.Write( msg );
Такой код будет дожидаться окончания вывода команды, а мне нужно чтобы это делалось асинхронно.
Буду рад примерам, ссылкам, мануалам.
Заранее спасибо!