Window下,C++调用exe程序并等待程序执行完成,使用ShellExecuteEx 您所在的位置:网站首页 c调用外部函数怎么用 Window下,C++调用exe程序并等待程序执行完成,使用ShellExecuteEx

Window下,C++调用exe程序并等待程序执行完成,使用ShellExecuteEx

2024-07-03 01:23| 来源: 网络整理| 查看: 265

#include std::string command = "arg1"; int main(void){ SHELLEXECUTEINFO ShExecInfo = { 0 }; ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS; ShExecInfo.hwnd = NULL; ShExecInfo.lpVerb = NULL; ShExecInfo.lpFile = L".\\a.exe"; // 预执行程序 ShExecInfo.lpParameters = STDString2LPCWCH(command); // 参数 ShExecInfo.lpDirectory = NULL; ShExecInfo.nShow = SW_SHOWMINIMIZED; // 隐藏执行 ShExecInfo.hInstApp = NULL; ShellExecuteEx(&ShExecInfo); // 等待 WaitForSingleObject(ShExecInfo.hProcess, INFINITE); return 0; } // std::string 转 LPCWCH LPWSTR STDString2LPCWCH(const std::string strcs) { UINT len = MultiByteToWideChar(CP_ACP, 0, strcs.c_str(), -1, NULL, 0); LPWSTR wszasc = new WCHAR[len + 1]; MultiByteToWideChar(CP_ACP, 0, strcs.c_str(), -1, wszasc, len); return wszasc; } nShow 参数

SW_HIDE 隐藏窗口并激活另一个窗口。 SW_SHOWNORMAL | SW_NORMAL 激活并显示一个窗口。如果窗口最小化或最大化,系统会将其恢复到其原始大小和位置。应用程序应在首次显示窗口时指定此标志。 SW_SHOWMINIMIZED 激活窗口并将其显示为最小化的窗口。 SW_SHOWMAXIMIZED | SW_MAXIMIZE 激活窗口并将其显示为最大化窗口。 SW_SHOWNOACTIVATE 以窗口的最新大小和位置显示窗口。此值类似于SW_SHOWNORMAL,只是窗口未激活。 SW_SHOW 激活窗口并以当前大小和位置显示窗口。 SW_MINIMIZE 最小化指定的窗口并按 Z 顺序激活下一个顶级窗口。 SW_SHOWMINNOACTIVE 将窗口显示为最小化的窗口。此值类似于SW_SHOWMINIMIZED,只是窗口未激活。 SW_SHOWNA 以窗口的当前大小和位置显示窗口。此值类似于SW_SHOW,只是窗口未激活。 SW_RESTORE 激活并显示窗口。如果窗口最小化或最大化,系统会将其恢复到其原始大小和位置。应用程序应在还原最小化的窗口时指定此标志。 SW_SHOWDEFAULT 根据启动应用程序的程序传递给 CreateProcess 函数的 STARTUPINFO 结构中指定的SW_值设置显示状态。 SW_FORCEMINIMIZE 最小化窗口,即使拥有该窗口的线程没有响应。仅当最小化来自不同线程的窗口时,才应使用此标志。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有