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

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요

  1. kkamagui 2007/07/17 17:58 고유주소 고치기 답하기

    오우 좋은 코드 조각이네요 퍼갑니다. ^^