搜索
查看: 1441|回复: 5

请教怎么处理_WM_CLOSE消息

[复制链接]

1

主题

3

帖子

16

积分

新手入门

Rank: 1

积分
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

主题

24

帖子

168

积分

一级会员

Rank: 2

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

使用道具 举报

3

主题

51

帖子

312

积分

二级会员

Rank: 3Rank: 3

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

使用道具 举报

1

主题

3

帖子

16

积分

新手入门

Rank: 1

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

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

使用道具 举报

1

主题

3

帖子

16

积分

新手入门

Rank: 1

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

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

使用道具 举报

1

主题

4

帖子

247

积分

二级会员

Rank: 3Rank: 3

积分
247
发表于 2018-1-23 14:44:20 | 显示全部楼层
我觉得你的思路错了,实现这种功能要考虑 hook系统api
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2018-12-15 17:54 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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