我想在已经启动后捕获流程标准输出流。
即。像这样的伪代码:
var process = Process.GetProcessById(1234);
process.OutputDataReceived += process_OutputDataReceived;
process.ErrorDataReceived += process_ErrorDataReceived;
process.Exited += process_Exited;
process.EnableRaisingEvents = true;
process.BeginErrorReadLine();
process.BeginOutputReadLine();
我喜欢一种解决方案,如果可能的话,它不会强迫我创建管道或调用本机代码等。
答案 0 :(得分:1)
怎么样?
process.StandardOutput.ReadToEnd();
process.BeginOutputReadLine();
也可能有用。
当然,这是假设原始流程是以UseShellExecute = false
和RedirectStandardOutput = true
修改强>
由于进程可能是使用shell启动的,并且没有重定向stdout。看看http://pastebin.com/f3eda7c8