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 );
}
{
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 );
}
덧글을 달아 주세요
kkamagui 2007/07/17 17:58 고유주소 고치기 답하기
오우 좋은 코드 조각이네요 퍼갑니다. ^^