CreateProcess
『実行ファイルから別の実行ファイルを起動する』メモ
■CreateProcess
// プロセスの起動
BOOL SimpleExecute(LPTSTR lpCommandLine)
{
STARTUPINFO si ;
PROCESS_INFORMATION pi ;
if(CreateProcess(NULL,
lpCommandLine, // コマンドライン文字列
NULL,NULL,FALSE,0,NULL,NULL,&si,&pi){
// スレッドハンドルの開放
CloseHandle(pi.hThread) ;
// プロセスハンドルを開放
CloseHandle(pi.hProcess) ;
return TRUE ;
}
return FALSE ;
}
// プロセスの起動(終了待ち有り)
BOOL Execute(LPTSTR lpCommandLine)
{
STARTUPINFO si ;
PROCESS_INFORMATION pi ;
ZeroMemory(&si, sizeof(STARTUPINFO)) ;
si.cb = sizeof(STARTUPINFO) ;
si.dwFlags = STARTF_USESHOWWINDOW ;
si.wShowWindow = SW_SHOWNORMAL ;
if(CreateProcess(NULL,
lpCommandLine, // コマンドライン文字列
NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)){
// スレッドハンドルの開放
CloseHandle(pi.hThread) ;
// 起動したプロセスの終了を待つ
WaitForSingleObject(pi.hProcess, INFINITE) ;
// プロセスハンドルを開放
CloseHandle(pi.hProcess) ;
return TRUE ;
}
return FALSE ;
}