2008-09-12 3 views
2

화면 긁기 응용 프로그램 업그레이드를 위해 노력하고 있습니다. 우리는 ActiveX 컨트롤을 사용하여 IBM 메인 프레임에서 스크린을 긁어 모으고 있습니다. 메인 프레임 프로그램은 종종 멈추고 ActiveX 컨트롤이 충돌하여 응용 프로그램이 충돌합니다. 우리는 메인 프레임 또는 ActiveX 소스 코드에 액세스 할 수 없습니다. 우리는 우리 자신의 액티브 X 컨트롤을 작성하지 않을 것입니다..Net의 ActiveX 컨트롤로 응용 프로그램 감지가 중단됩니다.

ActiveX 컨트롤을 캡슐화하여 컨트롤이있는 응용 프로그램이 멈추는 것을 방지하기 위해 인스트루먼트를 종료하고 코드로 다시 시작할 수있는 방법은 무엇입니까?

두 개의 개별 응용 프로그램을 만들어야합니까? 하나는 컨트롤러를 점검하여 다른 프로세스를 죽이고 프로세스가 중단 될 때 프로세스를 다시 시작합니다.

별도의 앱 도메인에 있어야하나요? 별도의 앱 도메인에 있어도 두 프로그램이 서로 통신 할 수 있습니까?

+0

대담 : * application – GEOCHET

답변

1

System.Diagnostics.Process.Start()를 사용하여 실행 파일을 시작할 수 있습니다. 그러면 프로세스가 여전히 활성 상태인지 주기적으로 확인하는 데 사용할 수있는 응답 특성이있는 Process 개체가 반환됩니다.

이렇게하려면 두 개의 별도 응용 프로그램이 필요합니다. 또한 모니터링하는 응용 프로그램은 메인 윈도우가 있어야합니다. 그 이유는 응용 프로그램이 메인 윈도우 메시지 큐에서 메시지를 여전히 처리하는지 확인하여 모니터링이 작동하기 때문입니다. 이것은 윈도우가 "응답하지 않음"을 윈도우 제목에 추가하는 것과 같은 방법입니다

+0

두 앱이 서로 대화하는 것에 대한 제안이 있습니까? 아마도 데이터베이스를 사용할 것입니다. 더 쉬운 방법이 있습니까? – ctrlShiftBryan

+0

응용 프로그램이 서로의 메시지 루프에 항목을 게시하게 할 수 있습니다. 아마도 프로세스 간의 의사 소통을위한 더 나은 방법이있을 것입니다. IPC를 위해 SO를 검색해보십시오. – Mendelt