对于windows程序设计来说,启动一个进程有三种方法:WinExec,ShellExecute,CreateProcess。这里仅对CreateProcess的用法加以说明。
对于CreateProcess的详细参数读者可以查MSDN和《Windows API参考手册》,这里不具体说明。下面给出常用的方法:
STARTUPINFO startup;
ZeroMemory( &startup, sizeof(startup) );
startup.cb = sizeof(startup);
ZeroMemory( &m_procInfo, sizeof(m_procInfo) );
// 初始化结果体是必须的,否则会异常
BOOL bRetVal = ::CreateProcess( (LPCWSTR)strProcPath,
NULL,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&startup,
&m_procInfo );
if ( !bRetVal )
{
AfxMessageBox( _T( "启动失败!" ) );
}
说明:
第一个参数是应用程序的全路径,第二个参数是命令行参数。如果第一个参数为空,就必须在第二个参数中指定应用程序的路径。
如果启动的进程与当前进程不再同一个目录下,则第八个参数必须指定,第八个参数为启动的进程所在的路径。否则不能成功启动进程。如下所示:
BOOL bRetVal = ::CreateProcess( (LPCWSTR)strProcPath,
NULL,
NULL,
NULL,
FALSE,
0,
NULL,
(LPCWSTR)strProcFolder,
&startup,
&m_procInfo );
if ( !bRetVal )
{
AfxMessageBox( _T( "启动失败!" ) );
}
您可能感兴趣的文章:VC动态生成菜单项的实现方法基于VC实现的网络监听功能程序实例VC实现ODBC数据库操作实例解析VC++操作SQLite简单实例VC实现批量删除指定文件的方法VC6.0实现读取Excel数据的方法VC小技巧汇总之5则实用小技巧VC小技巧汇总之窗口技巧VC小技巧汇总之控件技巧VC实现让关闭按钮成灰色不可用的方法