C/C++ は ShellExecuteEx を使用して exe プログラムを呼び出します

記事の著者: Caspian
出典 Web サイト: 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