如何使用WinIo模拟鼠标移动到指定位置? 50

不使用SetCursorPos,直接利用WinIo向鼠标的硬件端口发送数据包来模拟鼠标的移动,并使鼠标移动到屏幕的指定位置(象素坐标),关于鼠标的移动我已经掌握:鼠标会发... 不使用SetCursorPos,直接利用WinIo向鼠标的硬件端口发送数据包来模拟鼠标的移动,并使鼠标移动到屏幕的指定位置(象素坐标),关于鼠标的移动我已经掌握:鼠标会发送位移和按键信息数据包给主机,例如五键带滚轮鼠标的数据包格式如下:

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
┌————┬————┬————┬————┬——┬———┬———┬———┐
Byte 1 │Y 溢出位│X 溢出位│Y 符号位│X 符号位│置 1│中键位│右键位│左键位│
├————┴————┴————┴————┴——┴———┴———┴———┤
Byte 2 │ X 左右移位值,补码 │
├——————————————————————————————————┤
Byte 3 │ Y 上下移位值,补码 │
├————┬————┬————┬————┬——┬———┬———┬———┤
Byte 4 │ 置 0 │ 置 0 │第5键位 │第4键位 │ Z3 │ Z2 │ Z1 │ Z0 │
└————┴————┴————┴————┴——┴———┴———┴———┘

现在的问题是:鼠标的位移量同鼠标指针在屏幕上的象素位移量并不一样,这跟鼠标移动速度的设置有关,设置的值保存在注册表HKEY_CURRENT_USER\Control Panel\Mouse\MouseSensitivity中,例如我的电脑上该值设为10,鼠标位移量同象素位移量的比较如下:

n, cX, cY
1, 1, 1
2, 2, 2
3, 3, 3
4, 4, 4
5, 5, 5
6, 6, 6
7, 14, 14
8, 16, 16
9, 18, 18
10, 20, 20
11, 22, 22
12, 24, 24
13, 26, 26
14, 28, 28
15, 30, 30
16, 32, 32
17, 34, 34
18, 36, 36
19, 38, 38
20, 40, 40
21, 42, 42
22, 44, 44
23, 46, 46
24, 48, 48
25, 50, 50
26, 52, 52
27, 54, 54
28, 56, 56
29, 58, 58
30, 60, 60

当鼠标移动速度的设置不同时,鼠标位移量同象素位移量的比值也不同,我现在想知道如何根据象素的位移量换算出鼠标的位移量?
展开
 我来答
淼你在哪
2016-12-23
知道答主
回答量:5
采纳率:0%
帮助的人:5439
展开全部
解决了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
995017580
2009-01-08 · 超过14用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:42.3万
展开全部
老大你是做啥地,看着不是博士也是大学生了,天书呀一般人看不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式