从移动鼠标到窗口收到MOUSEMOVE消息之间,Windows都干了什么?

Sodar 2008-10-17 01:48:29
用户移动了一下鼠标,最终鼠标所在位置的窗口收到了一个WM_MOUSEMOVE消息。对于大多数程序来说,对这个消息进行处理以进行响应就够了。
可是,这段时间内到底发生了什么事情?
按照我的推测,应该是由鼠标驱动程序发鼠标移动的事件通知windows窗口管理模块,然后由该模块检查一下这个消息应该发送给哪个窗口。

问题是:这个过程可以HOOK吗?即我们是否可以接管并修改鼠标的各种动作?

另外一个小问题:在Windows系统中,如何才能彻底隐藏鼠标光标?
...全文
115 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cnzdgs 2008-10-17
可以用SetWindowsHookEx来Hook。
隐藏光标可以试试Hook SetCursor函数。
  • 打赏
  • 举报
回复
Sodar 2008-10-17
也许我的问题不太清楚。

1. 要求隐藏鼠标是指在整个系统的全局范围内隐藏,不是只在我的程序里隐藏;
2. 不是要在某个进程中HOOK消息,是在更底层(内核?),在消息分发到窗口的消息队列之前能不能截获?
  • 打赏
  • 举报
回复
zhoujianhei 2008-10-17
鼠标HOOK当然可以,各个层次都可以HOOK。网上资料也已很多。
  • 打赏
  • 举报
回复
xsc2001 2008-10-17
鼠标消息的键盘消息都是可以HOOK到的。藏鼠标光标的话你可以自己定义一个光标用LoadCursor(ID)加载到程序中就行
  • 打赏
  • 举报
回复
vcPlayer 2008-10-17
消息都是可以HOOK的。

诚如你所言,驱动一般发消息给窗口过程:DefWindowProc,然后每个应用程序的这个窗口过程来处理各种各样的消息。HOOK 这个窗口过程,就可以拦截到这些窗口消息。
  • 打赏
  • 举报
回复
dirdirdir3 2008-10-17
修改鼠标的驱动应该可以............
  • 打赏
  • 举报
回复
相关推荐
发帖
硬件/系统
加入

2613

社区成员

VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
申请成为版主
帖子事件
创建了帖子
2008-10-17 01:48
社区公告
暂无公告