创建进程
发布日期:2021-11-15 14:57:59
浏览次数:127
分类:技术文章
本文共 1974 字,大约阅读时间需要 6 分钟。
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。
1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文件。如:WinExec('Notepad.exe Readme.txt', SW_SHOW); 3.ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。
HINSTANCE ShellExecute(
_In_opt_ HWND hwnd,//父窗口句柄或出错时显示错误父窗口的句柄,可以为 NULL _In_opt_ LPCTSTR lpOperation,//操作 _In_ LPCTSTR lpFile,//要打开的文件名、执行的程序名、浏览的文件夹等。 _In_opt_ LPCTSTR lpParameters,//可执行程序的参数,否则为 NULL _In_opt_ LPCTSTR lpDirectory,//默认目录 _In_ INT nShowCmd//显示类型 );
ShellExecute代码展示:ShellExecute((HWND)GetDesktopWindow(),_T("open"),_T("D:/DD Work/Supcon/CCTV/cctv_vs2008-z-1213/bin/cctv.exe"),_T("-p 100 100 -s 1000 1000"),_T("D:/DD Work/Supcon/CCTV/cctv_vs2008-z-1213/bin"),SW_SHOWNORMAL );
createprocess调用展示 // TCHAR szCommandLine[] = TEXT("D:/DD Work/Supcon/CCTV/cctv_vs2008-z-1213/bin/cctv.exe -p 500 500 ");//或者WCHAR // //LPWSTR szCommandLine = TEXT("NOTEPAD");//错误 // //STARTUPINFO si = { sizeof(si) }; // STARTUPINFO si; // PROCESS_INFORMATION pi; // ZeroMemory(&si, sizeof(si)); // si.cb = sizeof(si); // ZeroMemory(&pi, sizeof(pi)); // // si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成员有效 // si.wShowWindow = TRUE; // 此成员设为TRUE的话则显示新建进程的主窗口, // // 为FALSE的话则不显示 // BOOL bRet = ::CreateProcess ( // NULL, // 不在此指定可执行文件的文件名 // szCommandLine, // 命令行参数 // NULL, // 默认进程安全性 // NULL, // 默认线程安全性 // FALSE, // 指定当前进程内的句柄不可以被子进程继承 // CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口 // NULL, // 使用本进程的环境变量 // NULL, // 使用本进程的驱动器和目录 // &si, // &pi); // // if(bRet) // { // WaitForSingleObject(pi.hProcess, INFINITE); // // 既然我们不使用两个句柄,最好是立刻将它们关闭 // ::CloseHandle (pi.hThread); // ::CloseHandle (pi.hProcess); // // printf(" 新进程的进程ID号:%d \n", pi.dwProcessId); // printf(" 新进程的主线程ID号:%d \n", pi.dwThreadId); // } //else //{ // printf(" 错误码:%d \n",bRet ); // //}
C++交流群:585225803
转载地址:https://blog.csdn.net/qq_39742146/article/details/84998719 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年03月27日 04时26分22秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mysql怎么分组查询所有数据库_Mysql-4 分组查询与子查询
2021-06-24
mysql 多列union_Mysql联合查询UNION和UNION ALL的使用介绍
2021-06-24
mysql导数据出指定数量_mysql导出指定数据或部份数据的方法
2021-06-24
java thread 多线程_java用Thread方式创建多线程
2019-04-21
java 注解与反射_Java注解与反射直接上手
2019-04-21
java按钮退出_java – 如何在此程序中添加退出按钮?怎么样“清楚”?
2019-04-21
python土味情话_Python 将土味情话语录设置为桌面壁纸
2019-04-21
java ip 范围内打卡_定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019-04-21
与java线程有关的,线程多少和什么有关?大神们表示有话要说!
2019-04-21
php正则表达式 匹配数字,正则表达式之匹配数字范围
2019-04-21
php中带?错误,参考-此错误在PHP中意味着什么?
2019-04-21
php生成链接列表,根据URL链接和抛文本生成链接<a>标签的PHP函数
2019-04-21
php html标签自定义属性,浅谈JS读取DOM对象(标签)的自定义属性
2019-04-21
php 实现 model层,Thinkhphp5控制器调用的Model层的方法总结
2019-04-21
matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号
2019-04-21
matlab中多边形滤波器,几种常见空间滤波器MATLAB实现
2019-04-21
matlab fminimax 例子,Matlab应用实例(8)—fminimax
2019-04-21
php://filter利用条件,浅谈php://filter技巧
2019-04-21