必须保持活动的应用程序

我需要一种方法来强制我的应用程序(名为看门狗)保持有效,即使我故意closures它。 此应用程序同时检查其他两个应用程序(辅助控制和数据传输)的活动。 当这两个应用程序中的任何一个closures时,看门狗就可以再次使其运行。 但是当看门狗停下来的时候,再也没有人操作了。 我怎样才能做到这一点? 有没有一个窗口服务,可以应付这个使命?

感谢您的帮助!


谢谢大家!

经过大量的试验和错误,我终于可以让我的看门狗应用程序持续控制'Assistance Control'和'Data Transfer'窗口应用程序的运行。 实际上,有两个Windows应用程序由第三个Windows应用程序控制是没有意义的,主要是因为它们本身的性质 – 它们确实存在以提供交互,所以任何人都可以随时停止看门狗。 这是自然的方式。 考虑到西蒙的build议,我决定把控制权发展到一个新的水平,现在把我的看门狗作为一个Windows服务来发展。 我知道这可能不是最好的方式,因为服务本身与基于GUI的应用程序进行通信,而不是build议。 我设置了我的看门狗服务,以允许桌面交互,现在没有什么阻止它继续活着,除非,当然,平均用户停止服务。

如果有人需要这样的持续控制,我认为这可能是一个明确的和明确的解决scheme。

Windows服务控制pipe理器可以重新启动一个服务,如果它意外closures,但它不会重新启动一个服务,因为该服务停止响应“停止”控制消息。 对于意外事件(如未处理的exception),此function可以自动重启您的程序。 但是,如果服务被用户故意阻止,这将毫无帮助。

听起来你可以写一个“看门狗看门狗”,但是你需要一个“看门狗看门狗看门狗”。 在某些时候,你只能放弃,并假设你的软件可以被停止,如果有人想要。

您可以使用“计划任务”来定期检查您的看门狗程序是否正在运行并重新启动。

有点糊涂,但是如果你的“看门狗”应用程序是一个本地化的服务,那么当它被SCM要求停止时,你可以在事件日志中logging一个事件。 然后您可以设置重新启动服务的事件触发器(请参阅EventTriggers.exe )。

从你的描述来看,这听起来像你还需要一个监控系统。 我们这样做 – 我们有一堆看门狗脚本,我们有一个topdog脚本来监视所有列出的看门狗是否正在运行 – 而且我们每4个小时就有HPOV检查来validationtopdog是否正在运行。 如果不是的话,我们会收到警报。

编辑 – HPOV是一个外部监测系统,如果你不知道。 为了获得这样的可靠性和监控水平,您需要从业务系统外部进行监控。