2

我正在升级屏幕抓取应用程序。我们正在使用 ActiveX 控件从 IBM 大型机中抓取屏幕。大型机程序经常挂起并使 ActiveX 控件崩溃,从而导致我们的应用程序崩溃。我们无权访问大型机或 ActiveX 源代码。我们不会编写自己的活动 x 控件。

封装 ActiveX 控件以检测应用程序与控件一起挂起以便我们可以终止进程并使用代码重新启动的最糟糕的方法是什么?

我应该创建 2 个单独的应用程序吗?一个作为控制器检查另一个并在进程挂起时终止/重新启动进程?

他们必须在不同的应用程序域上吗?即使它们位于不同的应用程序域中,是否可以让两个程序相互通信?

4

1 回答 1

1

您可以使用 System.Diagnostics.Process.Start() 启动可执行文件。这将返回一个带有 Responding 属性的 Process 对象,您可以使用该属性定期检查进程是否仍处于活动状态。

不过,您需要两个单独的应用程序来执行此操作。并且您正在监视的应用程序需要有一个主窗口,因为监视通过检查应用程序是否仍在处理来自主窗口消息队列的消息来工作。这与 Windows 知道将“不响应”添加到窗口标题的方式相同

于 2008-09-12T18:01:22.623 回答