VC程序设计中CreateProcess用法注意事项
对于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( "启动失败!" ) );
}相关阅读:
MYSQL数据库中cmd命令操作详解
MySQL查询倒数第二条记录实现方法
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
浅谈使用PHP开发微信支付的流程
Win7还原任务栏默认设置解决设置错等问题
浅析关于PHP位运算的简单权限设计
快速掌握WordPress中加载JavaScript脚本的方法
Android如何实现非本地图片的点击态
Win10预览版Edge浏览器如何安装Lastpass密码管理器
深入浅析SQL Server 触发器
浅析MySQL内存的使用说明(全局缓存+线程缓存)
mysql使用SQLyog导入csv数据不成功的解决方法
详解三种java实现多线程的方式
CI框架在CLI下执行占用内存过大问题的解决方法