2008-09-12 41 views
2

我正在升級屏幕抓取應用程序。我們正在使用ActiveX控件來從IBM大型機中刮取屏幕。大型機程序經常掛起並崩潰導致我們的應用程序崩潰的ActiveX控件。我們無法訪問大型機或ActiveX源代碼。我們不打算寫我們自己的主動x控件。檢測應用程序與.Net中的ActiveX控件掛起

封裝ActiveX控件以檢測應用程序與控件掛起的麻煩方式是什麼,所以我們可以殺死進程並重新啓動代碼?

我應該創建2個獨立的應用程序嗎?一個作爲控制器,用於檢查另一個並在掛起時殺死/重啓進程?

他們必須在單獨的應用程序域嗎?即使它們位於不同的應用程序域中,是否可能有兩個程序彼此通信?

+0

Pedantry:*應用程序 – GEOCHET 2008-09-12 18:09:49

回答

1

您可以使用System.Diagnostics.Process.Start()啓動可執行文件。這將返回一個帶有響應屬性的Process對象,您可以使用該屬性來定期檢查流程是否仍處於活動狀態。

雖然您需要兩個獨立的應用程序來完成此操作。而且您正在監視的應用程序需要有一個主窗口,因爲監視通過檢查應用程序是否仍然處理來自主窗口消息隊列的消息來工作。這是Windows知道要添加「不響應」窗口標題的相同方式

+0

任何建議讓兩個應用程序相互交談?我可能只是使用數據庫。有更簡單的方法嗎? – ctrlShiftBryan 2008-09-12 20:03:34