看门狗在vc ++应用程序中

时间:2013-03-13 11:22:26

标签: c++ visual-c++ watchdog

我编写了一个简单的vc ++后台应用程序。我正在尝试的是一个监视服务,它可以监视应用程序是否正在运行。如果应用程序崩溃,那么服务应该启动应用程序

通过Windows安装程序创建设置我只使用app.exe和app.dll。 是否有可能在exe本身创建这个看门狗服务?

不幸的是我不知道如何编写这样的程序,有没有人有一些示例代码可以演示这种技术呢?

如果是,那么如何将默认的exe和watchdog exe作为单个应用程序来安装?

3 个答案:

答案 0 :(得分:1)

您最好的方法是创建一个单独的服务来充当监督者。从技术上讲,可以将服务和“真实应用程序”放在同一个可执行文件中。您可以根据exe的启动方式区分这两者,但这会使维护变得非常困难。

article可能会引起您的兴趣。

答案 1 :(得分:1)

这里 - http://yadi.sk/d/EtzBRSMi3FqVH - 是我在使用systray工作的WatchDog应用程序的实现。不要介意它是用Qt编写的 - 主要功能是使用WinAPI。 这个应用程序在进程列表中查看多个进程,如果找不到则重新启动它们。第二个功能是它监视系统中所有可疑窗口标题的窗口(例如“我的好应用程序”导致系统错误并将关闭。向开发人员发送消息?“),如果找到,也重新启动它们< / p>

P.S。我没有,但我认为不会有麻烦)

更新:(根据@CodyGray评论)

这是pastebin的链接:WatchDog.cppWatchDog.h

答案 2 :(得分:0)

这样的监视程序可以设置为,例如,每分钟(或其他)写入文件。如果文件未在两分钟或更长时间内更新,则应用程序中很可能出现死锁,必须重新启动。