计划任务是否收到WM_QUERYENDSESSION消息?

时间:2014-07-23 12:57:21

标签: windows delphi winapi

我有一个程序响应WM_QUERYENDSESSION执行一些运行作为计划任务的清理。记录表明未执行清理代码。作为计划任务运行的应用程序是否接收WM_QUERYENDSESSION消息,还是有其他方法可以检测Window关闭?

1 个答案:

答案 0 :(得分:6)

消息被发送到顶级窗口。如果您的流程有一个,则会发送消息。如果您没有,那么您可以为此创建一个。如果您的应用程序是控制台应用程序,则建议使用SetConsoleCtrlHandler来接收此类通知。

从评论主题中可以看出,您的流程在SYSTEM帐户下运行。根据{{​​3}},这意味着它不会被系统关闭。

  

在系统安全上下文中运行的应用程序不会被操作系统关闭。通过SetConsoleCtrlHandler可以安装的回调函数通知他们关闭或注销。