此文章是vip文章,如何查看?  

1,点击链接获取密钥 http://nicethemes.cn/product/view29882.html

2,在下方输入文章查看密钥即可立即查看当前vip文章


Delphi 消息拦截篇 -- 之拦截系统关机、重启、注销

  • 时间:
  • 浏览:
  • 来源:互联网

最近做的项目中需要拦截系统关机,因为我在FormCloseQuery中总是把CanClose设为False,不拦截关机的话直接导致系统中的关机、重启、注销都失效了!导致用户不能关机!(提示用户说要关机的话直接按电源^^)这样肯定是不行的!

 

 

要完成这个功能只需要拦截到WM_QUERYENDSESSION消息就万事Ok!

关键在于怎么在Delphi下拦截WM_QUERYENDSESSION消息呢?Delphi也是很强悍的,当然不用直接去SetWindowLong了。

 

 

好了不废话了,博客的第一篇文章就开始啦!

 

 

首先介绍一下Delphi中拦截消息的几种做法

 

 

 

 

第一种:自定义处理单条消息

 

 

 

第二种:利用Application.OnMessage处理消息

 

第三种:自己处理窗口函数,个人感觉这是最强大的,可以拦截一切发往窗口的消息!

 

 

经过再次测试,只有Application.OnMessage不能拦截WM_QUERYENDSESSION消息!还有,有时候Delphi的一些控件也会导致不能正确拦截,今天测试了一晚上了。。--|,总算解决了这个问题!!

 

 

 

好了,本文到此结束。由于在做这个功能的时候遇到了一些低级问题^^,所以马上在博客上记录一下,2点了啊!睡觉去,明天争取把项目全部完成!加油!!!

 

 

本文链接http://element-ui.cn/news/show-468911.aspx