【问题标题】:Is it possible to intercept Console output from a shelled process?是否可以从一个带壳的进程中截获控制台输出?
【发布时间】:2013-01-22 03:05:29
【问题描述】:

我从我的进程中启动了一个控制台应用程序。它执行一项任务,将一堆东西写入控制台,然后终止。

鉴于我已经启动了控制台应用程序,我是否可以拦截正在写入控制台的内容?

请注意,有一个类似的question,但它是用于 c++ 的,我不确定如何翻译语义。 我过去曾问过类似的question,但这仅适用于我自己的流程。

【问题讨论】:

  • 是的,而且一直都在这样做,而且整个网络都有很多这样的例子。只需花点时间浏览一下 MSDN 上 Process 类的文档,它有很多很好的例子。

标签: c# console console-application


【解决方案1】:
Process process = new Process();
process.OutputDataReceived += LogOutput;

您可以在开始流程之前创建一个方法并将其放置在 OutputDataReceived 事件中。

private static void process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
    ...
}

【讨论】:

  • 实际上比这更多;您需要为Process 类的StartInfo 适当地设置一些属性。不过,只看 MSDN 上的示例会更容易;在这种特殊情况下,它们非常好。
猜你喜欢
  • 2011-08-26
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 1970-01-01
  • 2016-07-01
  • 2023-03-22
  • 2015-01-23
相关资源
最近更新 更多