::NPTEAM:: Network Programer Team

검색 :
RSS 구독 : 글 / 댓글 / 트랙백 / 글+트랙백

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



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 );
}
 
2007/05/01 16:56 2007/05/01 16:56

맨 위로