如何在程序中启动另一程序?并且要不影响本程序的运行.
我在程序中用WinExec函数启动了另一个程序,但是这样一来我的程序就不再往下执行而是在等那个程序运行完成.
我想让那个程序启动后我的程序能继续往下进行应该怎么做呢?
[解决办法]
用CreateProcess是可以的,这是我曾经用过的例子:
BOOL bOk = CreateProcess( "..\\bin\\XXXX.exe ",
NULL,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&startinfo,
&pinfo
);
每个参数的具体含义可以查询MSDN了解。
[解决办法]
CString str_path= "....... ";
char cCommandLine[MAX_PATH];
PROCESS_INFORMATION pi;
STARTUPINFO si = {sizeof(si)};
::strcpy(cCommandLine, str_path);
// 启动进程
BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
if (ret){
// 关闭子进程的主线程句柄
CloseHandle(pi.hThread);
// 关闭子进程句柄
CloseHandle(pi.hProcess);
}