发布网友 发布时间:2022-04-25 15:44
共2个回答
热心网友 时间:2023-10-14 03:56
鼠标指针的位置,就是系统内存中的一个变量组,包含两个数值:鼠标横坐标、鼠标竖坐标。
鼠标坐标以鼠标指针图像的点击点为准,就是鼠标指针的箭头顶点。
当移动鼠标的时候,鼠标硬件通过鼠标驱动,对内存中该变量进行更改。
鼠标还有一个刷新率的概念,就是每秒钟可以更改多少次鼠标位置变动,通常都是每秒钟数百上千次。
而显卡用于显示屏幕内容输出,鼠标的指针图形也由显卡来创建,显卡也有刷新率,比如液晶屏幕的默认刷新率60hz,就是每秒钟在显示器上刷新60次图像,其中也有鼠标指针的覆盖画面,每次显示鼠标指针,都会调用鼠标位置的变量组,在相应的屏幕位置覆盖鼠标指针的图像。
于是当你移动鼠标的时候,其实就是以每秒60次的刷新率不断地在屏幕上相应的位置、绘制出鼠标指针的图像,因为人眼的残留视觉时间是每秒刷新24次,所以60次的刷新,使得人眼看到的景象就是鼠标指针在屏幕中平滑移动(其实是一个像素一个像素地移动着,因为鼠标刷新率远远超出屏幕刷新率)。
模拟该信号,有各种方式,一般都是通过编程语言调用系统API接口,然后更改鼠标位置的那个变量组,也就是直接更改鼠标的横坐标和竖坐标。
典型的应用范例,参考“按键精灵”,其中移动鼠标位置的语句为:
MoveTo xxx,xxx
moveto是移动鼠标的命令,后面跟着两组数据,就是需要移动到的屏幕横坐标和竖坐标。
屏幕坐标以当前屏幕分辨率为准,如标准1080p的屏幕,横坐标为0~1919(一共1920个像素值),竖坐标为0~1079(一共1080个像素值)……是的,都是从0开始,而不是从1开始,这也是大多数代码数据的习惯。
当然,其实每种编程语言都有类似的控制语句。
热心网友 时间:2023-10-14 03:56
鼠标的物理移动,鼠标内的电路就会把光敏二极管检测到的电信号转换成脉冲信号并进行编码输出给主机。主机接收到信号后会反编译成二进制编码给CPU处理,CPU处理好后就指挥显示输出单元在屏幕上产生一个鼠标从A点移动到B点的图像
这种信号是可以模拟的