C\C++ 使用ShellExecuteEx调exe程序

文章作者:里海
来源网站:https://blog.csdn.net/WangPaiFeiXingYuan


简介:

  1. 声明一个 SHELLEXECUTEINFO 结构体变量 sei。
  2. 使用 memset 函数将 sei 变量的内存全部初始化为 0。
  3. 设置 sei 结构体的 cbSize 成员为 SHELLEXECUTEINFO 的大小。
  4. 设置 sei 结构体的 fMask 成员为 SEE_MASK_NOCLOSEPROCESS,表示不关闭执行进程。
  5. 设置 sei 结构体的 lpVerb 成员为字符串 "open",表示打开方式。
  6. 设置 sei 结构体的 lpFile 成员为要执行的程序路径。
  7. 设置 sei 结构体的 nShow 成员为 SW_HIDE,表示程序窗口被隐藏。
  8. 调用 ShellExecuteEx 函数执行外部程序,并传递 sei 结构体作为参数。
  9. 使用 WaitForSingleObject 函数等待外部程序执行完毕,INFINITE 表示等待无限时间。
  10. 使用 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);

猜你喜欢

转载自blog.csdn.net/WangPaiFeiXingYuan/article/details/131965286