Есть ли в любом случае использовать функцию SetCursorPos (int, int), но вместо того, чтобы принимать два int, нужно сделать два двойных для медленной скорости - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь заставить контроллер Xbox перемещать курсор. В любом случае, я могу использовать функцию setCursorPos () и увеличить ее на два двойных вместо двух целых.Проблема в том, что 1 все еще слишком быстр для изменения.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Для надежного ввода данных вы должны использовать SendInput вместо SetCursorPos.Это гарантирует, что система выполняет весь конвейер обработки ввода, поддерживая приложения.Установка флагов MOUSEEVENTF_ABSOLUTE позволяет передавать нормализованные координаты в диапазоне [0..65535].В подавляющем большинстве случаев это обеспечивает более высокое разрешение, чем устройство отображения;по сути это позволяет использовать субпиксельную точность.

0 голосов
/ 19 декабря 2018

SetCursorPos() не увеличивает курсор, а перемещает его в новое абсолютное положение x / y.См. документацию для описания.И нет, вы не можете вызывать его с помощью параметров с плавающей запятой, он принимает int params.

Вы не предоставили никакого кода, поэтому комментировать другие способы сделать это невозможно.Если вы увеличиваете местоположение, например,

 x = x+1;
 x = y+1;
 SetCursoPos(x,y);

, чтобы замедлить его, вы можете просто добавить задержку между последовательными вызовами в SetCursorPos().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...