首页
社区
课程
招聘
[求助]鼠标操作想到的问题
发表于: 2013-1-7 01:36 5077

[求助]鼠标操作想到的问题

2013-1-7 01:36
5077
学了许久内核,突然间发现一个平时最常用的操作 我还真解释不清。。

   手动鼠标在桌面上移动几下,是怎么实现的?是发送WM_MOUSEMOVE消息?
   那在内核又调用了什么函数,或者怎么实现?

   如果在一个程序内用鼠标进行一些移动然后点击操作,跟直接在内存读写数据有什么区别?怎么检测他们的不同?

   有介绍这方面的书没?
   不耻下问,求赐教!!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2120
活跃值: (73)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
不耻下问
2013-1-7 01:39
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好像有一些可以模拟鼠标键盘的操作,只听说过,没研究。。
2013-1-7 10:27
0
雪    币: 281
活跃值: (33)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
有了解的吗??
2013-1-8 05:34
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
这不是一个很简单的问题,涉及到硬件和操作系统好几层。

现在鼠标应该都是USB的了吧。在USB协议中,鼠标属于HID设备,连接上电脑后,鼠标会把所有相关的操作按照USB协议的标准传输给电脑,Windows会建立相关的设备栈负责处理和鼠标设备的通讯,从最底层的USB通信编解码到最高层的各种USB请求过滤和处理。设备驱动处理完后,事件会分发给win32子系统,这个系统负责窗口管理和图形设备接口(GDI)。在这个子系统中,有一个RIT线程,负责读取设备驱动产生的原始的输入事件,然后生成消息,寄送到正确的线程消息队列中。用户态的代码就可以使用诸如GetMessage之类的函数负责处理了。

简单讲就是这样。具体细节非常复杂,一本书都未必能讲完。
2013-1-9 19:36
0
游客
登录 | 注册 方可回帖
返回
//