C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[61883] 여러개의 프로세스를 찾아서 에러 검사시 오류...알려주세요
조제 [muffins80] 839 읽음    2010-07-13 16:53
현재 실행중인 여러개의 프로세스를 찾아서 그 상태를 나타내고자 하는 프로그램을 작성하였습니다.

프로세스를 찾는 것은 볼란도에 게시판에 있는 내용을 참고 하였습니다.
프로세스를 1개씩 찾아서 상태를 “실행”,  “TimoOut”, “정지”로 나타냅니다.
반복하여 5개까지는 문제 없이 찾는데…6번째의 프로세스를 찾고 난후 다음의 프로세트를 찾는 동작해서 에러가 발생합니다.
급하니 꼭 알려주세요.

소스 올립니다.
do {
     HANDLE hProcess;
    // Get the actual priority class.
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
    dwPriorityClass = GetPriorityClass (hProcess);
    AnsiString Temp = pe32.szExeFile;
    monaProgCondxDt = &m_stProgCondxDt[ 0 ];
    for(int idx = 0 ; idx < MONASVR_PROG_CNT; idx++, monaProgCondxDt++) {
        if(Temp == monaProgCondxDt->pszExeName) {
    monaProgCondxDt->fAlive = true;
    fRet = true;
    break;
        } else {
    fRet = false;
        }
    }
    if(fRet == true){
        typedef BOOL (*TIsHungAppWindow)(HWND);
        TIsHungAppWindow func;
        HWND hUser32=GetModuleHandleA("user32.dll");
        func=(TIsHungAppWindow)GetProcAddress(hUser32,"IsHungAppWindow");
        if(func(this->Handle)){
    monaProgCondxDt->Error = true;
    Msg.sprintf("%s Process TimeOut", Temp);
        } else {
    monaProgCondxDt->Error = false;
    Msg.sprintf("%s Process Running", Temp);
        }
        Memo->Lines->Add(Msg);
        CloseHandle (hProcess);
    }
} while (Process32Next(hProcessSnap, &pe32));
Return = TRUE;
}
CloseHandle (hProcessSnap);

+ -

관련 글 리스트
61883 여러개의 프로세스를 찾아서 에러 검사시 오류...알려주세요 조제 839 2010/07/13
61916     Re:여러개의 프로세스를 찾아서 에러 검사시 오류...알려주세요 아제나 974 2010/07/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.