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
[57307] Re:실행화일상태 확인에 대한 질문!!
장성호 [nasilso] 1221 읽음    2009-06-18 16:51
실행상태는 Process를 검색해보는것이 비교적 정확합니다.
Applicaiton이라면 FindWindow등도 괜찮지만..


1. 프로세서 검색은
   프로램의 실행여부는
   TlHelp32.h  를 이용해서 다음과 같이 찾으시면 됩니다.
   http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=55034

2. 응답없음 상태 확인
   응답없음 상태확인은 몇가지 있는데요
   1) SendMessageTimeout 함수를 이용해서  WM_NULL 메세지 등으로 보내
       시간안에 응답이 없는경우를 이용할수도 있구요
        http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNo=20&no=6860

   2) Win32  API이용하여
       * Win98 , Win-Me에서는   IsHungThread 라는 API가 있구
       * XP이후로는     IsHungAppWindow  라는 User32.dll에 있는 문서화 되지 않는 API가 있습니다.

       이놈을 이용해 쉽게 체크 가능합니다.
      http://74.125.153.132/search?q=cache:A9d1ItfHL54J:msdn.microsoft.com/en-us/library/ms633526.aspx+IsHungAppWindow&cd=1&hl=ko&ct=clnk&gl=kr

     HMODULE hm=LoadLibrary("User32.dll");
     functype functionptr=(functype) GetProcAddress(hm,"IsHungAppWindow");


3. 프로그램을 죽이려면
    마지막으로 프로그램을 죽이려면
    PROCRESS_ALL_ACCESS 권한으로 OpenProcess한뒤에
    TerminateProcess 하시면 됩니다.

그럼..



부산촌님 님이 쓰신 글 :
: 안녕하십니까?
: 부산 촌님 입니다.
:
: A.exe 가 실행되고 있읍니다.
:
: B.exe가 A.exe의 실행상태를 알수 있나요?
: 즉 A.exe가 장애상태(응답없음) 상태이라면 B.exe에서 A.exe의 실행을 정지시키고 싶읍니다.
: 방법이 없을까요?

+ -

관련 글 리스트
57306 실행화일상태 확인에 대한 질문!! 부산촌님 856 2009/06/18
57307     Re:실행화일상태 확인에 대한 질문!! 장성호 1221 2009/06/18
57309         Re:Re:실행화일상태 확인에 대한 질문!! 부산촌님 1207 2009/06/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.