2008-09-12 62 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