我试图获得我的鼠标速度,但是当我使用参数调用函数SystemParametersInfoA时,它会设置我认为它不应该发生SPI_GETMOUSE
的目标数组。{0,0,0}
示例代码:
int IntArr[3];
SystemParametersInfoA(SPI_GETMOUSE, 0, &IntArr, 0);
我尝试更改我的鼠标灵敏度(从控制面板),但这也不起作用。
这个函数应该返回那些零还是我的错?
我试图获得我的鼠标速度,但是当我使用参数调用函数SystemParametersInfoA时,它会设置我认为它不应该发生SPI_GETMOUSE
的目标数组。{0,0,0}
示例代码:
int IntArr[3];
SystemParametersInfoA(SPI_GETMOUSE, 0, &IntArr, 0);
我尝试更改我的鼠标灵敏度(从控制面板),但这也不起作用。
这个函数应该返回那些零还是我的错?
文档说:
检索两个鼠标阈值和鼠标加速度。
起初我确实认为这两个鼠标阈值与我的鼠标光标敏感度有关。
在文档中对mouse_event进行更深入的搜索后,我发现在备注部分它说:
系统在应用加速度时对指定的相对鼠标运动应用两个测试。如果沿 x 或 y 轴的指定距离大于第一个鼠标阈值,并且鼠标加速度水平不为零,则操作系统将距离加倍。如果沿 x 轴或 y 轴的指定距离大于第二个鼠标阈值,并且鼠标加速度级别等于 2,则操作系统将应用第一个阈值测试产生的距离加倍。因此,操作系统可以将沿 x 轴或 y 轴的相对指定的鼠标移动最多乘以四倍。
这基本上意味着我在目标数组IntArr中获得的这 3 个值与灵敏度无关,而是这两个鼠标阈值和“增强指针精度”(0或1表示它打开或关闭),我的被禁用了,这就是我得到全零的原因。
为了获得鼠标灵敏度,您必须使用SystemParametersInfoA函数,SPI_GETMOUSESPEED
参数为uiAction。