利用管道和createprocess写了一个窗口程序,该窗口的作用是执行dos命令,然后在窗口中显示dos命令的输出结果。但是发现了一个问题,有些dos输出父进程捕获不到。google了一翻似乎并不是所有的dos输出都是标准输出,所有重定向的stdout没用。请问,如何捕获那些非标准输出的信息?(例如有些命令执行后会显示一些进度信息,命令执行完后进度信息消失)
解决方案 »
- 不懂这个用法如何称呼!!
- 请问服务的启动过程分为几个状态,顺序是怎样的,我在启动一个服务的时候,如果把服务的启动状态同程序同步起来?
- 为什么字体会变得很奇怪?
- 怎样写接口函数
- CMainFrame类和CView类下面写的程序有什么不同啊
- vc6生成的工程转变为VC7工程后,如何将对话框中的按钮变为XP风格?
- 调用:reTranslateMessage时为什么提示:illegal call of non-static member function
- 如何对注册表的REG_EXPAND_SZ类型的值项进行编程?
- 有关注册表DWORD 的读写问题(很急阿)
- CFile怎么会这样的错误呢?
- 在mfc中,用双缓冲,把几张图先全画在一个虚拟画布上,然后再一次过贴上客户区,解决闪烁的问题
- 写一半透明窗口//在无编译环境下运行,窗口无法显示什么原因?
但是最终的控制台窗体系统也提供了API函数进行操作, 直接用这些API, 拦截io当然就没用
一定要捕获可以试试Hook API
"有些命令执行后会显示一些进度信息,命令执行完后进度信息消失"
这个可能是另外一种情况, 控制台输出是可以退格, 也可以移动光标进行覆盖