搜索
aardio官方社区 门户 查看主题

请教怎么处理_WM_CLOSE消息

发布者: yangshangdi | 发布时间: 2018-1-22 15:41| 查看数: 749| 评论数: 5|帖子模式

请教,我用aardio做了个程序,希望在windows系统给程序发_WM_CLOSE消息的时候,能够拦截这个消息,但是以下这样代码起不了作用

  1. mainForm.onClose = function(hwnd,msg,wParam,lParam){
  2.    
  3.    if(msg == 0x10/*_WM_CLOSE*/){
  4.       
  5.        return false;
  6.    }
  7. }
复制代码


经过验证,在任务管理器里对程序执行“结束任务”的操作,能够执行到这个函数,并且msg也等于0x10,但是返回false无效,程序一样被结束掉,请教如何拦截_WM_CLOSE消息?

最新评论

vikon 发表于 2018-1-22 16:21:23
经测试,return false后,无法用关闭按钮关掉,任务栏右键关闭也不行。要开任务管理器杀进程。
幻月 发表于 2018-1-22 16:24:05
我的理解是,结束任务是针对进程的,而代码上是窗口消息
关闭进程的时候会给窗口发一个关闭的消息,但不管你返回的是啥,进程kill掉了,那窗口肯定也留不住
具体太底层的东西我懂的也不多,仅供参考
yangshangdi 发表于 2018-1-22 16:27:19
vikon 发表于 2018-1-22 16:21
经测试,return false后,无法用关闭按钮关掉,任务栏右键关闭也不行。要开任务管理器杀进程。

对,点窗口右上角的叉号是没法关闭程序了,但是在任务管理器里点“结束任务”还是能结束任务,我想的是不让在任务管理器里结束任务
yangshangdi 发表于 2018-1-22 16:30:23
幻月 发表于 2018-1-22 16:24
我的理解是,结束任务是针对进程的,而代码上是窗口消息
关闭进程的时候会给窗口发一个关闭的消息,但不管 ...

恩,说的有道理,可能是还要处理别的消息才行,我再研究下
you888 发表于 2018-1-23 14:44:20
我觉得你的思路错了,实现这种功能要考虑 hook系统api

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-6-25 05:56 , Processed in 0.062500 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表