关于子进程窗口显示的问题
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");}