【发布时间】:2013-06-28 23:49:23
【问题描述】:
我正在使用第 3 方工具 A 启动一个长时间运行(数周)的控制台应用程序 B 并捕获控制台输出然后显示它。不幸的是,主应用程序有崩溃的趋势,这意味着它不再可能监视B。
如果B 已经运行了一段时间,我不想重新启动它,但我需要知道它的进展情况。
理想情况下,我想编写一个非常简单的应用程序,显示B 的控制台输出(最好是.Net,但在Windows 上运行的任何东西都可以)。
这对于您尚未启动的进程是否可行?如果有,怎么做?
【问题讨论】:
-
我们能否假设 B 正在写入 stdout/stderr 而不是使用直接控制台 I/O?是否可以让 A 启动您选择的包装器 .exe,然后调用 B?这将是我能看到的唯一适合“非常简单”类别的策略。
-
有趣的问题。我希望如此。该应用程序是针对 Windows 和 Linux 构建的,因此我假设 stdout 是合乎逻辑的选择。不过,我不确定。至于欺骗 A 启动我的包装器,没有什么可配置的。我想我可以尝试交换可执行文件 - 我会试一试。希望它没有签名:)
-
@RonBurk 好主意。为我自己的包装器交换可执行文件正是我所需要的——我只是在显示到我自己的窗口时传递所有内容。如果您愿意发布作为答案,我会接受。
标签: .net windows winapi console