我正在升级屏幕抓取应用程序。我们使用ActiveX控件从IBM大型机中删除屏幕。大型机程序经常挂起并崩溃ActiveX控件导致我们的应用程序崩溃。我们无权访问大型机或ActiveX源代码。我们不打算编写自己的主动x控件。
使用控件封装ActiveX控件以检测应用程序挂起的最简单方法是什么,以便我们可以终止进程并使用代码重新启动?
我应该创建2个单独的应用程序吗?一个作为控制器检查另一个并在挂起时终止/重启进程?
他们是否必须在不同的应用领域?是否有可能让两个程序相互通信,即使它们位于不同的应用程序域上?
答案 0 :(得分:1)
您可以使用System.Diagnostics.Process.Start()启动可执行文件。这将返回一个Process对象,该对象具有Responding属性,您可以使用该属性定期检查进程是否仍处于活动状态。
但是,您需要两个单独的应用程序才能执行此操作。并且您正在监视的应用程序需要具有主窗口,因为监视通过检查应用程序是否仍处理来自主窗口消息队列的消息来工作。这与Windows知道将“不响应”添加到窗口标题
的方式相同