03-鼠标控制
本章介绍鼠标类函数的用法。
源码路径
源码位于:03-mouse_test文件夹中.
本章小结
本章主要学习鼠标的控制函数。
1、如何控制鼠标左中右键按下松开。
2、如何控制鼠标移动。
3、如何屏蔽、解除屏蔽鼠标按键,坐标。
4、如何获取鼠标按键是否按下,移动多少?。
5、鼠标的调用速度测试(性能测试)。
熟练本章代码。即可轻松控制鼠标移动点击。
代码走读
本章代码有点多。如果要测试监控类函数。把对应的宏改成1.其他宏改成0.详细代码效果可以下载调试运行。
请多多调试。代码是调试出来的。不是看出来。
kmAI_monitor_mouse_left 监控鼠标左键
当鼠标左键按下后,该函数返回1。没有按下返回0。
kmAI_monitor_mouse_middle 监控鼠标中键
当鼠标中键按下后,该函数返回1。没有按下返回0。
kmAI_monitor_mouse_right 监控鼠标右键
当鼠标右键按下后,该函数返回1。没有按下返回0。
kmAI_monitor_mouse_side1 监控鼠标侧键1
当鼠标侧键1按下后,该函数返回1。没有按下返回0。
kmAI_monitor_mouse_side2 监控鼠标侧键2
当鼠标侧键2按下后,该函数返回1。没有按下返回0。
kmAI_monitor_mouse_xy 监控鼠标X,Y移动距离
输出两个参数:
kmAI_monitor_mouse_xy(&xx,&yy);
xx,yy中就会记录最近一次X和Y方向上移动的距离。
kmAI_monitor_mouse_wheel 监控鼠标滚轮移动距离
kmAI_monitor_mouse_wheel(&ww);
其中ww就包含最近一次滚轮移动的距离。
kmAI_mask_mouse_left 屏蔽鼠标左键
输入参数为1表示屏蔽鼠标左键。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
kmAI_mask_mouse_middle 屏蔽鼠标中键
输入参数为1表示屏蔽鼠标中键。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
kmAI_mask_mouse_right 屏蔽鼠标右键
输入参数为1表示屏蔽鼠标右键。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
kmAI_mask_mouse_side1 屏蔽鼠标侧键1
输入参数为1表示屏蔽鼠标侧键1。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
kmAI_mask_mouse_side2 屏蔽鼠标侧键2
输入参数为1表示屏蔽鼠标侧键2。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
kmAI_mask_mouse_x 屏蔽鼠标X轴方向移动
输入参数为1表示屏蔽鼠标X轴方向移动。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
kmAI_mask_mouse_y 屏蔽鼠标Y轴方向移动
输入参数为1表示屏蔽鼠标Y轴方向移动。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
kmAI_mask_mouse_xy 屏蔽鼠标XY轴方向移动
输入参数为1表示屏蔽鼠标X和Y轴方向移动。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
效果等效于kmAI_mask_mouse_x+kmAI_mask_mouse_y.
kmAI_mask_mouse_wheel 屏蔽鼠标滚轮移动
输入参数为1表示屏蔽鼠标滚轮移动。0表示不屏蔽。屏蔽后对应鼠标消息不再上传到OTG口。注意合理解除屏蔽。
kmAI_mouse_move(shortx,shorty) 控制鼠标相对移动
x:横向移动距离。
y:纵向移动距离。
kmAI_mouse_left(int isdown) 控制鼠标左键
isdown=0:鼠标左键松开。
isdown=1:鼠标左键按下。
kmAI_mouse_right(int isdown) 控制鼠标右键
isdown=0:鼠标右键松开。
isdown=1:鼠标右键按下。
kmAI_mouse_middle(int isdown) 控制鼠标中键
isdown=0:鼠标中键松开。
isdown=1:鼠标中键按下。
kmAI_mouse_wheel(int isdown) 控制鼠标滚轮
isdown=-1:鼠标滚轮上移动。
isdown=1:鼠标滚轮下移动。
kmAI_mouse_side1(int isdown) 控制鼠标侧键1
isdown=1:鼠标侧键1按下。
isdown=0:鼠标侧键1松开。
kmAI_mouse_side2(int isdown) 控制鼠标侧键2
isdown=1:鼠标侧键2按下。
isdown=0:鼠标侧键2松开。
kmAI_mouse_all 一次性控制鼠标所有数据
kmAI_mouse_all(intbutton,intx,inty,intwheel);//鼠标按键,坐标,滚轮一次性控制ok
输入参数依次为:鼠标按键状态。鼠标X坐标,鼠标Y坐标,鼠标滚轮状态。
运行结果
请自行测试。下图是测试16万次调用耗时。一共耗时40006ms。很明显6ms是系统开销。也就是40秒执行16万次调用。
1K回报率的鼠标(每秒1000次调用),16万次调用需要160秒。咱们需要40秒。如果屏蔽键盘端点操作。则可省一般带宽。
效率再提高一倍。
FAQ常见问题
如何退出程序
1、控制台直接按键盘ctr+c
2、按键盘End快捷键(切换到内部UI快捷键,以你设置的为准)