我编写了一个简单的vc ++后台应用程序。我正在尝试的是一个监视服务,它可以监视应用程序是否正在运行。如果应用程序崩溃,那么服务应该启动应用程序
通过Windows安装程序创建设置我只使用app.exe和app.dll。 是否有可能在exe本身创建这个看门狗服务?
不幸的是我不知道如何编写这样的程序,有没有人有一些示例代码可以演示这种技术呢?
如果是,那么如何将默认的exe和watchdog exe作为单个应用程序来安装?
答案 0 :(得分:1)
您最好的方法是创建一个单独的服务来充当监督者。从技术上讲,可以将服务和“真实应用程序”放在同一个可执行文件中。您可以根据exe的启动方式区分这两者,但这会使维护变得非常困难。
此article可能会引起您的兴趣。
答案 1 :(得分:1)
这里 - http://yadi.sk/d/EtzBRSMi3FqVH - 是我在使用systray工作的WatchDog应用程序的实现。不要介意它是用Qt编写的 - 主要功能是使用WinAPI。 这个应用程序在进程列表中查看多个进程,如果找不到则重新启动它们。第二个功能是它监视系统中所有可疑窗口标题的窗口(例如“我的好应用程序”导致系统错误并将关闭。向开发人员发送消息?“),如果找到,也重新启动它们< / p>
P.S。我没有,但我认为不会有麻烦)
更新:(根据@CodyGray评论)
这是pastebin的链接:WatchDog.cpp和WatchDog.h
答案 2 :(得分:0)
这样的监视程序可以设置为,例如,每分钟(或其他)写入文件。如果文件未在两分钟或更长时间内更新,则应用程序中很可能出现死锁,必须重新启动。