在Win32 API中动态检索控制台输出到GUI窗口

时间:2017-09-22 10:52:54

标签: winapi

考虑必须从另一个应用程序调用的单独可执行文件的情况,控制台应用程序通过stdoutstderr输出发出进度。现在,我在Codeproject上提到this文章,它允许我以静默方式运行此应用程序。但是,由于控制台应用程序需要时间来完成,因此我的主应用程序看起来应该完全冻结。现在,能够捕获控制台输出并在'类似GUI的'只读窗口上显示进度消息是很好的,如下所示: enter image description here 我知道它可以完成,就像他们为基于控制台的ffmpeg等大型程序所做的那样。如何在Win32 API中完成?

1 个答案:

答案 0 :(得分:2)

显而易见的方法是创建一个读取子进程的stdout和stderr的线程。当有新内容时,该线程会通知UI线程然后显示它。