捕获不相关进程的输出

我只是想知道是否有可能捕获在Windows上运行的单独进程的输出?

例如,如果我有一个控制台应用程序运行,我可以运行第二个应用程序,一个表单应用程序,并让该应用程序捕获控制台应用程序的输出并将其显示在文本框中?

你可以这样做:

Process[] p = Process.GetProcessesByName("myprocess.exe"); StreamReader sr = p[0].StandardOutput; while (sr.BaseStream.CanRead) { Console.WriteLine(sr.ReadLine()); } 

如果您正在启动它,则可以重定向进程的stdout / stderr(标准输出/错误流)。 举个例子来看看这个 。

捕获一个不是由你启动的进程的输出流,嗯,这是完全不同的事情。 我不确定它是否可以完成。

但是,如果您可以控制两个应用程序的源代码,还有其他通信方式,如管道/远程处理/ WCF等等……

选择的答案远非正确。 首先p [0] .StandardOutput已经是StreamReader其次,你无法读取其他进程的StandardOutput,你会收到exception!