C\C++ 使用ShellExecuteEx调exe程序
  CiIZfyyIq65u 2023年11月30日 27 0


文章作者:里海


简介:

  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);
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月30日 0

暂无评论

推荐阅读
CiIZfyyIq65u