SystemParametersInfoA с SPI_GETMOUSE возвращает 0
Я пытаюсь увеличить скорость мыши, но когда я вызываю функцию SystemParametersInfoA с параметромSPI_GETMOUSE
он устанавливает целевой массив в {0,0,0}
что, я думаю, этого не должно быть.
Пример кода:
int IntArr[3];
SystemParametersInfoA(SPI_GETMOUSE, 0, &IntArr, 0);
Я попытался изменить чувствительность мыши (с панели управления), но это тоже не помогло.
Эта функция должна возвращать эти нули или это моя вина?
1 ответ
В документации говорится:
Получает два пороговых значения мыши и ускорение мыши.
Сначала я подумал, что эти два пороговых значения мыши связаны с чувствительностью моего курсора мыши.
После более глубокого поиска в документации для mouse_event я обнаружил, что в разделе примечаний говорится:
Система применяет два теста к указанному относительному движению мыши при применении ускорения. Если указанное расстояние по оси x или y больше, чем первое пороговое значение мыши, а уровень ускорения мыши не равен нулю, операционная система удваивает расстояние. Если указанное расстояние по оси x или y больше, чем второе пороговое значение мыши, а уровень ускорения мыши равен двум, операционная система удваивает расстояние, полученное в результате применения первого порогового теста. Таким образом, операционная система может увеличивать относительно заданное движение мыши по оси x или y до четырех раз.
Который в основном означает, что эти 3 значения, которые я получил в целевом массиве IntArr не было ничего общего с чувствительностью, но, скорее, эти пороговые значения 2 для мыши и "Enhance указатель Precission", который был либо 0 или 1 с указанием его превратили в или выключен, мой был отключен, поэтому я получил все нули.
Чтобы получить чувствительность мыши, вы должны использовать функцию SystemParametersInfoA сSPI_GETMOUSESPEED
параметр как uiAction вместо этого.