2011-08-03 4 views
0

컨텍스트는 다음과 같습니다콘솔 닫기 이벤트를 잡는 방법? 내 문제의

  1. 내가 메인 프로세스와 윈도우 .NET 응용 프로그램 (GUI) 실행해야합니다.
  2. 이 (상위) 프로세스에서 콘솔 프로세스로 두 개의 하위 프로세스를 만듭니다.
  3. 주 프로세스는 명명 된 파이프를 통해 하위 프로세스로 데이터를 보냅니다.
  4. 주 앱에는 하위 프로세스 목록이 있습니다.

내 문제는 각 콘솔에 닫기 ("x") 버튼이 있으며 종료 될 수 있다는 것입니다. 메인 프로그램에 생성 된 콘솔 목록을 보관하므로 콘솔이 종료되거나 종료되는시기를 알고 싶습니다.

내 콘솔 (자식 프로세스) 프로그램은 단지 파이프를 판독하고 (데이터를 표시) 루프 기능을 갖는 "() 메인"이다. 그것은 메시지 시스템을 가지고 있지 않거나 윈도우 잉 "종료"를 처리 할 수있는 다른 것이 없습니다.

내 머리에 오는 첫 번째 아이디어는 목록을 새로 주요 응용 프로그램에서 하위 프로세스를 폴링하는 것입니다. 그러나 이것은 콘솔을 감시하는 타이머 또는 스레드를 도입해야 함을 의미합니다. 나는 그 생각이 싫어.

누군가 더 좋은 생각이 있습니까? hThread 인수에 지정된 스레드가 신호 때문에 종료 여부를

답변

0

WaitForSingleObject(hThread, 0) 당신을 말할 것이다. 같은 번호는 hProcess입니다.

CreateProcess() 전화를 걸면 자녀 프로세스의 두 핸들이 반환됩니다. 즉시 닫거나 WaitForSingleObject을 사용하여 모니터링 할 수 있습니다.

관련 문제