Process - ID 로 Window-Application의 Hung체크 하기
다음 두가지 기능으로 Process-Window의 Hung을 체크한다.
1) IsHungWindow 로 "응답없음" 체크
2) EnumDesktopWindow 로 Process의 Window-Handle 찾기
//--------------------------------------------------------------------------- typedef struct _PROC_INFO { long iProcessId; HWND hWnd; }PROC_INFO; //--------------------------------------------------------------------------- BOOL __stdcall EnumDeskTopWindowProc(HWND hWnd, LPARAM lParam) { unsigned long iThreadId,iProcessId; PROC_INFO *pInfo=(PROC_INFO *)lParam; iThreadId=GetWindowThreadProcessId(hWnd,&iProcessId); if(iProcessId==pInfo->iProcessId) { pInfo->hWnd=hWnd; return false; } return true; } //--------------------------------------------------------------------------- bool IsHungProcessWindow(int iProcessID) { PROC_INFO pInfo; pInfo.iProcessId=iProcessID; pInfo.hWnd=0; EnumDesktopWindows(0,(FARPROC)EnumDeskTopWindowProc,(long)&pInfo); if(pInfo.hWnd!=0)return IsHungAppWindow(pInfo.hWnd); return false; } |
그럼..
'코드 조각' 카테고리의 다른 글
DBGrid Multiselect 했을때 각각의 Row 처리 (0) | 2012.04.24 |
---|---|
TComboBox Enter 키로 DropDown 제어하기 (0) | 2012.04.24 |
Process 실행 체크 2 (0) | 2012.04.23 |
Process 실행 체크 1 (0) | 2012.04.23 |
디버거로 실행중인지 체크 함수(IsDebuggerPresent) (0) | 2012.04.23 |