MM求救 (100分)

  • 主题发起人 主题发起人 LeonSu
  • 开始时间 开始时间
L

LeonSu

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用HOOK拦截WM_COMMAND事件。
BTW,是全局消息
 
我是新手,帮你顶一下吧!
 
何必用 HOOK .
2002.9.23.
看了下面的说明,我知道了。
 
可以利用特殊的hook,为了利用特殊的hook类型,开发者提供了hook过程,
使用SetWindowsHookEx函数来把hook过程安装到关联的hook链。
语义: LRESULT CALLBACK HookProc(
int nCode,
WPARAM wParam,
LPARAM lParam
);
Hook Types:
WH_CALLWNDPROC and WH_CALLWNDPROCRET Hook使你可以监视发送到窗口过程的消息。
以下事件之前,系统都会调用WH_CBT Hook过程,这些事件包括:激活,建立,销毁,
最小化,最大化,移动,改变尺寸等窗口事件;
WH_GETMESSAGE Hook:去监视鼠标和键盘输入,以及其他发送到消息队列中的消息。
WH_JOURNALPLAYBACK Hook使应用程序可以插入消息到系统消息队列。
WH_MSGFILTER and WH_SYSMSGFILTER Hooks] 可以在模式循环期间过滤消息,
这等价于在主消息循环中过滤消息。
希望对你有用。必要的话,可以来个例子
 
To: Gingerzy
Tks a lot

To: 小雨哥
你的方法只适用于主程序,没法得到其他程序的消息,要得到其他程序的消息,最好的方法
(据我所知是唯一的方法)就是利用HOOK,因为要拦截WM_COMMAND消息。

To: 海水蓝色
我已经可以捉到MOUSE与KEYBOARD的事件了,问题是当我们按下按钮时,Windows除了发送
Mouse&Keyboard的事件外,还要发送一个Wm_Command的事件,这才是我问题的重点,如何
去拦截它。归根到底,也就是如何拦截Wm_Command消息
 
多人接受答案了。
 
后退
顶部