spy++ 消息钩子漫谈

本文详细探讨了Windows消息队列、SendMessage与多线程的关系,以及WH_CALLWNDPROC、WH_GETMESSAGE和WH_CALLWNDPROCRET等消息钩子的使用。通过分析SPY++如何捕获消息,揭示了全局钩子在多线程消息处理中的关键作用,并讨论了发送消息队列在窗口线程中的存在与处理顺序。
摘要由CSDN通过智能技术生成

spy++ 消息钩子漫谈

我们经常使用SPY++来查看应用程序所处理的消息情况,但经常在网上看到许多人在问,SPY++是如何把应用程序所处理的消息展现出来的呢?许多人提出了很好的建议,但是资料都太零散,查找起来比较费力,我在此整理出来供大家分享。

在讲具体问题之前,我们先讲一些题外话,这样对我们下面的讲解会有帮助,

消息队列

WINDOWS操作系统中,我们比较了解的消息队列有两种:一种是系统消息队列,这种消息队列在整个系统中是唯一的;一种是线程窗口消息队列,每一个拥有GDI操作的线程都会创建一个窗口消息队列。系统队列主要存储公用的消息,如当我们点击鼠标或键盘时,相应的驱动程序就会把它们放到系统队列中,然后系统经过处理会把它们传递给对应的窗口消息队列。窗口消息队列是线程私有的,它存储着此程线未处理的消息。

WINDOWS消息有两种,队列消息和非队列消息:队列消息是经过窗口消息队列的消息,如用PostMessage发送的消息都是队列消息,队列按先进先出由线程进行处理,但

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值