2

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

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

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

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

4

3 回答 3

1

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

PS我没有i18n它,但我认为不会有麻烦)

更新:(根据@CodyGray 评论)

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

于 2013-03-13T11:38:24.737 回答
1

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

这篇文章可能很有趣。

于 2013-03-13T11:31:55.087 回答
0

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

于 2013-03-13T11:27:16.583 回答