我有一项服务会不断检查某些应用程序并确保它没有关闭。如果此应用程序关闭 - 服务将再次启动它。
当用户决定注销会话时,问题就开始了。在注销期间,所有应用程序都将关闭,包括我的应用程序。但该服务仍在运行并不断尝试再次启动它。
问题是如何通知服务用户将要注销并且不再需要重新启动应用程序?我尝试使用 SERVICE_CONTROL_SESSIONCHANGE 通知来实现它。但是根据 MSDN,当所有应用程序都已经关闭并且注销程序完成时,它们才会提供服务。对我来说太晚了。有没有办法以编程方式找出当前会话正在注销?
我的服务在 LocalSystem 帐户下启动。
谢谢。
ps 我无权访问应用程序源代码。目标需要在不修改的情况下实现。