Win32 – 应用程序捕获系统强制关机、强制注销消息,WM_QUERYENDSESSION和WM_ENDSESSION
1 WM_QUERYENDSESSION和WM_ENDSESSION消息
Windows在电脑关机、强制关机、注销时会向每个正在系统上运行的应用程序发送WM_QUERYENDSESSION消息,如果当前的应用程序不能顺利结束(如在软件上所作的一些修改未保存),如果应用程序处理该消息并返回0,这时Windows就不再继续发送WM_QUERYENDSESSION消息给下一个程序。如果应用程序处理该消息并返回1,则代表应用程序可以正常结束。但是,不管WM_QUERYENDSESSION消息是否返回可以顺利结束,Windows会再发送一个WM_ENDSESSION消息给所有正在运行的程序,而其附带的参数wParam则是指出是否可以顺利结束程序。
这两个消息非常有用,比如我们需要实现一个保存软件配置的功能,就是下一次打开软件恢复到上一次退出的配置,这就要求我们需要在本地保存一份配置信息文件,一般情况下会在软件正常退出时保存所有修改的设置信息,但是在软件正常运行的情况下,电脑强制关机或者强制注销,会导致配置信息无法被保存。所以这个时候需要在软件中对WM_QUERYENDSESSION消息进行响应,对软件的配置信息进行保存,然后再返回1,通知可以正常关闭程序。
参考
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Win32 – 应用程序捕获系统强制关机、强制注销消息,WM_QUERYENDSESSION和WM_ENDSESSION
原文链接:https://www.stubbornhuang.com/2883/
发布于:2023年11月08日 14:11:02
修改于:2023年11月08日 14:11:54
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52