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

怎么在程序中启动另一程序?并且要不影响本程序的运行

2014-06-10 
如何在程序中启动另一程序?并且要不影响本程序的运行.我在程序中用WinExec函数启动了另一个程序,但是这样

如何在程序中启动另一程序?并且要不影响本程序的运行.
我在程序中用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);
}

热点排行