aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 10062|回复: 5

请教怎么处理_WM_CLOSE消息

[复制链接]

1

主题

2

回帖

16

积分

新手入门

积分
16
发表于 2018-1-22 15:41:48 | 显示全部楼层 |阅读模式
请教,我用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消息?

0

主题

21

回帖

167

积分

一级会员

积分
167
发表于 2018-1-22 16:21:23 | 显示全部楼层
经测试,return false后,无法用关闭按钮关掉,任务栏右键关闭也不行。要开任务管理器杀进程。

3

主题

42

回帖

310

积分

二级会员

积分
310
发表于 2018-1-22 16:24:05 | 显示全部楼层
我的理解是,结束任务是针对进程的,而代码上是窗口消息
关闭进程的时候会给窗口发一个关闭的消息,但不管你返回的是啥,进程kill掉了,那窗口肯定也留不住
具体太底层的东西我懂的也不多,仅供参考

1

主题

2

回帖

16

积分

新手入门

积分
16
 楼主| 发表于 2018-1-22 16:27:19 | 显示全部楼层
vikon 发表于 2018-1-22 16:21
经测试,return false后,无法用关闭按钮关掉,任务栏右键关闭也不行。要开任务管理器杀进程。

对,点窗口右上角的叉号是没法关闭程序了,但是在任务管理器里点“结束任务”还是能结束任务,我想的是不让在任务管理器里结束任务

1

主题

2

回帖

16

积分

新手入门

积分
16
 楼主| 发表于 2018-1-22 16:30:23 | 显示全部楼层
幻月 发表于 2018-1-22 16:24
我的理解是,结束任务是针对进程的,而代码上是窗口消息
关闭进程的时候会给窗口发一个关闭的消息,但不管 ...

恩,说的有道理,可能是还要处理别的消息才行,我再研究下

1

主题

3

回帖

257

积分

二级会员

积分
257
发表于 2018-1-23 14:44:20 | 显示全部楼层
我觉得你的思路错了,实现这种功能要考虑 hook系统api
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2024-11-4 19:09 , Processed in 0.056388 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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