文章作者:里海
来源网站:https://blog.csdn.net/WangPaiFeiXingYuan
简介:
- 声明一个 SHELLEXECUTEINFO 结构体变量 sei。
- 使用 memset 函数将 sei 变量的内存全部初始化为 0。
- 设置 sei 结构体的 cbSize 成员为 SHELLEXECUTEINFO 的大小。
- 设置 sei 结构体的 fMask 成员为 SEE_MASK_NOCLOSEPROCESS,表示不关闭执行进程。
- 设置 sei 结构体的 lpVerb 成员为字符串 "open",表示打开方式。
- 设置 sei 结构体的 lpFile 成员为要执行的程序路径。
- 设置 sei 结构体的 nShow 成员为 SW_HIDE,表示程序窗口被隐藏。
- 调用 ShellExecuteEx 函数执行外部程序,并传递 sei 结构体作为参数。
- 使用 WaitForSingleObject 函数等待外部程序执行完毕,INFINITE 表示等待无限时间。
- 使用 CloseHandle 函数关闭 sei 结构体的 hProcess 句柄,释放相关资源。
代码:
SHELLEXECUTEINFO sei;
memset(&sei, 0, sizeof(SHELLEXECUTEINFO));
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpVerb = _T("open");
sei.lpFile = _T("ip.exe");
sei.nShow = SW_HIDE;
ShellExecuteEx(&sei);
WaitForSingleObject(sei.hProcess, INFINITE);//等待exe运行结束
CloseHandle(sei.hProcess);