【发布时间】:2011-06-06 23:04:38
【问题描述】:
如果我知道进程标识符,.net 中是否有某种机制(或作为最后手段的 pinvoke)来捕获/重定向我未启动的进程的标准输出?
【问题讨论】:
标签: .net .net-4.0 process .net-2.0 pinvoke
如果我知道进程标识符,.net 中是否有某种机制(或作为最后手段的 pinvoke)来捕获/重定向我未启动的进程的标准输出?
【问题讨论】:
标签: .net .net-4.0 process .net-2.0 pinvoke
您可以将您的进程AttachConsole 到另一个进程的控制台,然后使用通常的控制台 I/O 功能对其进行读写。
记得先使用FreeConsole从进程的当前控制台分离。
据我所知,您无法在 .NET 中执行此操作,您可以为您仅通过 ProcessStartInfo Class 启动的进程重定向输出。
据我所知,在进程启动后,您根本无法在外部重定向 I/O,只有进程本身可以做到。
您可以通过AttachConsole Function将调用进程附加到指定进程的控制台。
【讨论】:
编辑:看起来它确实不起作用,正如该线程中的另一个答案所指出的那样。
我没有亲自尝试过,但似乎,因为答案被接受,this 有效。
【讨论】: