首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于子进程窗口显示的有关问题

2012-04-22 
关于子进程窗口显示的问题STARTUPINFO siZeroMemory(&si,sizeof(si))si.dwFlagsSTARTF_USESHOWWINDOW|S

关于子进程窗口显示的问题
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.dwX=0;
si.dwY=0;
si.dwXSize=10;
si.dwYSize=30;
si.wShowWindow=SW_SHOW;
si.hStdInput=hReadPipe2;
si.hStdOutput=si.hStdError=hWritePipe1;
char cmdLine[]="cmd.exe";
PROCESS_INFORMATION ProcessInformation;
ret=CreateProcess(NULL,cmdLine,NULL,NULL,1,0,NULL,NULL,&si,&ProcessInformation);
用上面一段程序建立一个子进程,通过管道与父进程之间交互,为什么我子进程建立了(在任务管理器中有显示cmd.exe)但cmd窗口不显示出来?

[解决办法]
我以前好像也遇到过,我记得后来是不能启动cmd,我换了个别的,就可以了。
你试一下,子进程不要cmd,随便调个别的,比如金山词霸,qq啥的
[解决办法]

C/C++ code
#include <iostream.h> #include <windows.h>void main() {    STARTUPINFO si;    ZeroMemory(&si,sizeof(si));    si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;    si.dwX=0;    si.dwY=0;    si.dwXSize=10;    si.dwYSize=30;    si.wShowWindow=SW_SHOW;    //si.hStdInput=hReadPipe2;    //si.hStdOutput=si.hStdError=hWritePipe1;    char cmdLine[]="notepad.exe";    PROCESS_INFORMATION ProcessInformation={0};    int ret=CreateProcess(NULL,cmdLine,NULL,NULL,1,0,NULL,NULL,&si,&ProcessInformation);    WaitForSingleObject(ProcessInformation.hProcess,INFINITE);    system("pause");} 

热点排行