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 @ 2015-04-16 12:12  郑帅兵  阅读(351)  评论(0)    收藏  举报