Programming - cpueblo.com

ShellExecuteEx() - 파일 실행 - 기다리기~~


글쓴이 : 유광희 날짜 : 2002-08-21 (수) 17:56 조회 : 32104
header. Shellapi.h
lib. Shell32.lib

BOOL ExecuteProgram( String FileName, String Params, INT Flag )
{
     SHELLEXECUTEINFO execinfo;

     // 실행을 위해 구조체 세트
     ZeroMemory( &execinfo, sizeof(execinfo) );
     execinfo.cbSize = sizeof(execinfo);
     execinfo.lpVerb = "open";
     execinfo.lpFile = FileName.c_str();
     execinfo.lpParameters = Params.c_str();
     execinfo.fMask = SEE_MASK_FLAG_NO_UI | SEE_MASK_NOCLOSEPROCESS;
     execinfo.nShow = SW_SHOWDEFAULT;

     // 프로그램을 실행한다.
     int r = (int)ShellExecuteEx( &execinfo );
     if( r == 0 ) return( false );

     // 만약 Sync 플랙이 세트되었으면,
     // 실행이 종료될 때까지 기다린다.
     if( Flag == 1 ){
       DWORD ec;
       do {
         GetExitCodeProcess( execinfo.hProcess, &ec );
         Application->ProcessMessages();
       } while( ec == STILL_ACTIVE );
     }

     return( true );
}

잠자다… 2013-01-31 (목) 23:24
  ::ShellExecuteEx(&si);
  WaitForSingleObject(si.hProcess, INFINITE);
그냥 이렇게 기다리는 방법도 있습니다.
댓글주소