【发布时间】:2011-05-08 18:18:42
【问题描述】:
我有一项服务会不断检查某些应用程序并确保它没有关闭。如果此应用程序关闭 - 服务将再次启动它。
当用户决定注销会话时,问题就开始了。在注销期间,所有应用程序都将关闭,包括我的应用程序。但该服务仍在运行并不断尝试重新启动它。
问题是如何通知服务用户将要注销并且不再需要重新启动应用程序?我尝试使用 SERVICE_CONTROL_SESSIONCHANGE 通知来实现它。但是根据 MSDN,当所有应用程序都已经关闭并且注销程序完成时,它们才会提供服务。对我来说太晚了。有没有办法以编程方式找出当前会话正在注销?
我的服务在 LocalSystem 帐户下启动。
谢谢。
附言我无权访问应用程序源代码。目标需要在不修改的情况下实现。
【问题讨论】:
-
你为什么不把你的应用程序(至少应该始终运行的部分)变成一个服务?
-
“我的应用程序”是我需要不断运行的应用程序。但不是我写的。
标签: c++ windows service logoff