0

转到问题的答案

我试图获得我的鼠标速度,但是当我使用参数调用函数SystemParametersInfoA时,它会设置我认为它不应该发生SPI_GETMOUSE的目标数组。{0,0,0}

示例代码:

int IntArr[3];
SystemParametersInfoA(SPI_GETMOUSE, 0, &IntArr, 0);

我尝试更改我的鼠标灵敏度(从控制面板),但这也不起作用。

这个函数应该返回那些零还是我的错?

4

1 回答 1

0

文档说:

检索两个鼠标阈值和鼠标加速度。

起初我确实认为这两个鼠标阈值与我的鼠标光标敏感度有关。

文档中对mouse_event进行更深入的搜索后,我发现在备注部分它说:

系统在应用加速度时对指定的相对鼠标运动应用两个测试。如果沿 x 或 y 轴的指定距离大于第一个鼠标阈值,并且鼠标加速度水平不为零,则操作系统将距离加倍。如果沿 x 轴或 y 轴的指定距离大于第二个鼠标阈值,并且鼠标加速度级别等于 2,则操作系统将应用第一个阈值测试产生的距离加倍。因此,操作系统可以将沿 x 轴或 y 轴的相对指定的鼠标移动最多乘以四倍。

这基本上意味着我在目标数组IntArr中获得的这 3 个值与灵敏度无关,而是这两个鼠标阈值和“增强指针精度”01表示它打开关闭我的被禁用了,这就是我得到全零的原因。

为了获得鼠标灵敏度,您必须使用SystemParametersInfoA函数,SPI_GETMOUSESPEED参数为uiAction

于 2020-02-15T17:11:35.933 回答