|
하나의 프로그램이 1분마다 여러 실행파일을 실행시킵니다.
그런데...
하나의 실행파일이 실행중에 문제가 생기면 Holding 상태에로 멈추게 되면서
다음에 줄줄이 실행되야할 실행파일들이 실행되지 못하는 경우가 종종 생깁니다.
타이머를 써서 30초 이상이 경과하면 현재 실행중인 파일을 KILL하고 싶은데요....
어떻게 해야 하나요....
현재 실행은 다음과 같이 하고 있습니다.
=============================================================================================
void __fastcall Timer1Timer(TObject *Sender)
{
StartProcess("bin\\aaaa.exe");
StartProcess("bin\\bbbb.exe");
}
void StartProcess(AnsiString Str)
{
AnsiString curDir = Str;
STARTUPINFO siParam;
PROCESS_INFORMATION piParam;
DWORD dwExitCode;
// 초기화
FillMemory(&siParam, sizeof(STARTUPINFO), 0);
FillMemory(&piParam, sizeof(PROCESS_INFORMATION), 0);
// Param 섯팅
siParam.cb = sizeof(STARTUPINFO);
siParam.dwFlags = STARTF_USESHOWWINDOW;
siParam.wShowWindow = SW_HIDE;
CreateProcess(NULL, curDir.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &siParam, &piParam);
WaitForInputIdle(GetCurrentProcess(), INFINITE);
// 프로세스가 종료될때까지 대기함
if(piParam.hProcess) {
dwExitCode = STILL_ACTIVE;
while(dwExitCode == STILL_ACTIVE) {
WaitForSingleObject(piParam.hProcess, 100);
GetExitCodeProcess(piParam.hProcess, &dwExitCode);
UpdateWindow(Handle);
}
}
}
============================================================================================
|