アプリケーションを起動して終了待機します。
(1)CreateProcess 関数でアプリケーションを起動。
(2)WaitForSingleObject 関数で終了を待つ。
メモ帳を起動して終了を待機します。
サンプルはタイムアウトなしで指定。
#include <windows.h>
#include <tchar.h>
BOOL WaitProcess(LPTSTR lpszImageName);
int APIENTRY _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
TCHAR szprc[] = TEXT("NOTEPAD.EXE");
if(WaitProcess(szprc)) {
MessageBox(NULL, TEXT("Wait Done"), TEXT(""), 0);
}
return 0;
}
BOOL WaitProcess(LPTSTR lpszApp)
{
BOOL bResult = FALSE;
STARTUPINFO si = {0};
PROCESS_INFORMATION pi = {0};
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWNORMAL;
if(CreateProcess(NULL, lpszApp, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
if(WaitForSingleObject(pi.hProcess, INFINITE) == WAIT_OBJECT_0) {
bResult = TRUE;
}
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
return bResult;
}