高分问简单的问题:如何HOOK桌面的自定义消息 WM_USER + 83?

wang1st 2011-03-01 12:29:18
我发现执行“显示桌面”命令或者按下WIN+D按钮后,桌面(类名为"Progman")的那个窗口会收到WM_USER+83的消息,我想HOOK这个消息。现在有两个问题:
1.用哪个钩子?WH_CALLWNDPROC,WH_CBT,WH_GETMESSAGE?
1.是不是HOOK其他进程的消息必须要全局钩子?像我这种情况用线程钩子能做到吗?是不是一定要做个DLL?
...全文
188 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2011-03-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 iamrainliang 的回复:]

是不是HOOK其他进程的消息必须要全局钩子?

不全局最好,HOOK 目标进程的主线程消息好了
[/Quote]
说错了,不一定要全局钩子。
可以用GetWindowThreadProcessId找到目标窗口的线程标识符,然后对那个线程安装钩子。
Rain7758 2011-03-03
  • 打赏
  • 举报
回复
是不是HOOK其他进程的消息必须要全局钩子?

不全局最好,HOOK 目标进程的主线程消息好了
muzizongheng 2011-03-02
  • 打赏
  • 举报
回复
捕获 windows键+D键就行了。
见习学术士 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wang1st 的回复:]
引用 2 楼 xiaoc1026 的回复:
写错, LowLevelKeyboardProc -》 WH_KEYBOARD_LL

谢谢,但是如果不仅仅是按键,我是想截获自定义消息呢? 比如WM_USER+83就是自定义消息。
[/Quote]

为什么要整复杂呢,你在钩子里面屏蔽掉 WIN + D 不就行了吗?

使用 GetAsyncKeyState 判断 WIN 是否按下,如果按下就屏蔽掉D键
wang1st 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaoc1026 的回复:]
写错, LowLevelKeyboardProc -》 WH_KEYBOARD_LL
[/Quote]
谢谢,但是如果不仅仅是按键,我是想截获自定义消息呢? 比如WM_USER+83就是自定义消息。
见习学术士 2011-03-01
  • 打赏
  • 举报
回复
写错, LowLevelKeyboardProc -》 WH_KEYBOARD_LL
见习学术士 2011-03-01
  • 打赏
  • 举报
回复
全局钩子

WH_GETMESSAGE 可以截获普通按键消息
LowLevelKeyboardProc 可以截获系统按键消息
Lactoferrin 2011-03-01
  • 打赏
  • 举报
回复
给代码
wang1st 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lactoferrin 的回复:]
hook其他进程需要全局钩子,有的全局钩子过程要放到dll
截获WM_USER+83可以用WH_CALLWNDPROC
[/Quote]

我试过WH_CALLWNDPROC,不行啊。
hyc1108565 2011-03-01
  • 打赏
  • 举报
回复
hook其他进程需要全局钩子,有的全局钩子过程要放到dll
截获WM_USER+83可以用WH_CALLWNDPROC
Lactoferrin 2011-03-01
  • 打赏
  • 举报
回复
hook其他进程需要全局钩子,有的全局钩子过程要放到dll
截获WM_USER+83可以用WH_CALLWNDPROC
wang1st 2011-03-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaoc1026 的回复:]
引用 3 楼 wang1st 的回复:
引用 2 楼 xiaoc1026 的回复:
写错, LowLevelKeyboardProc -》 WH_KEYBOARD_LL

谢谢,但是如果不仅仅是按键,我是想截获自定义消息呢? 比如WM_USER+83就是自定义消息。


为什么要整复杂呢,你在钩子里面屏蔽掉 WIN + D 不就行了吗?

使用 GetAsyncKeyState ……
[/Quote]

不是复杂的问题,而是需求要我这样做。假设我不是要取得WIN+D,而是桌面的其他消息呢?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧