CreateProcess执行一个控制台程序,隐藏DOS窗口

STARTUPINFO   StartupInfo;//创建进程所需的信息结构变量   
GetStartupInfo(&StartupInfo);   
StartupInfo.lpReserved=NULL;   
StartupInfo.lpDesktop=NULL;   
StartupInfo.lpTitle=NULL;   
StartupInfo.dwX=0;   
StartupInfo.dwY=0;   
StartupInfo.dwXSize=0;   
StartupInfo.dwYSize=0;   
StartupInfo.dwXCountChars=500;   
StartupInfo.dwYCountChars=500;   
StartupInfo.dwFlags=STARTF_USESHOWWINDOW;   
StartupInfo.wShowWindow=SW_HIDE;   
//说明进程将以隐藏的方式在后台执行   
StartupInfo.cbReserved2=0;   
StartupInfo.lpReserved2=NULL;   
StartupInfo.hStdInput=stdin;   
StartupInfo.hStdOutput=stdout;   
StartupInfo.hStdError=stderr;   
PROCESS_INFORMATION   piProcess;   
BOOL   bRet;   
bRet   =   CreateProcess(modName,NULL,NULL,NULL,TRUE,CREATE_NO_WINDOW ,NULL,NULL,&StartupInfo,&piProcess);  
if(bRet)   
CloseHandle(piProcess.hThread);       
CloseHandle(piProcess.hProcess);
注意其中的StartupInfo.dwFlags=STARTF_USESHOWWINDOW;是必须的,要不然showwindow的参数将无效,详细的MSDN上写得清楚

posted @ 2012-08-20 10:41  l851654152  阅读(8679)  评论(0编辑  收藏  举报