看《老狼Gh0st远程协助软件编写系列教程(上半部)》视频的时候,4.1节有讲到双管道与cmd.exe进程间通信。所写的demo工程只能一次输入一个命令,然后返回。再次输入的时候会出现问题。在这里,我改进了一下代码,每次都可以输入命令,然后返回结果。
简单的MFC程序如下,启动之后,不管是否在命令输入框里输入内容,点击确定都只是出现cmd.exe的启动信息,如下图所示:
之后,就可以在命令输入中敲入代码,例如dir命令,结果显示如下:
在这里需要注意的地方,有些命令执行时间很长,点击确定之后不一定一次能够把命令结果完全显示出来,只需要再次点击确定,就可以把剩余的结果显示出来了。
核心代码如下:
void CCmdPipeDlg::ReadPipe()
{unsigned long BytesRead &