////////////////////////////////////////////////////////////////////////////////////////////////////////////SpecialSample2
//プロセスを起動し、終了を待つ1 ShellExecuteEx版
////////////////////////////////////////////////////////////////////////////////////////////////////////////SpecialSample2
void CShareDlg::OnButton8()
{
char pszWork1[512];
//画面から起動するプログラム名を取得する
GetDlgItemText(IDC_EDIT3, pszWork1, sizeof(pszWork1));
SHELLEXECUTEINFO sei = { 0 };
//構造体のサイズ
sei.cbSize = sizeof(SHELLEXECUTEINFO);
//起動側のウインドウハンドル
sei.hwnd = m_hWnd;
//起動後の表示状態
sei.nShow = SW_SHOWNORMAL;
//このパラメータが重要で、セットしないとSHELLEXECUTEINFO構造体のhProcessメンバがセットされない。
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
//起動プログラム
sei.lpFile = (LPCSTR)pszWork1;
//プロセス起動
if(!ShellExecuteEx(&sei) || (const int)sei.hInstApp <= 32){
TRACE("error ShellExecuteEx\n");
return;
}
//終了を待つ
WaitForSingleObject( sei.hProcess, INFINITE ) ;
}