Я выполняю действия MouseClick с помощью PostMessage WinApi, есть ли способ имитировать MouseMove с его помощью, без необходимости фокуса окна, чтобы я мог использовать свой курсор для других задач? Я знаю о lParam Параметр PostMessage, но он вступает в силу только тогда, когда я устанавливаю указатель мыши внутри окна DirectX.

SetCursorPos не является решением, так как я хочу выполнять MouseMoves, не захватывая курсор.

Я надеюсь, что это имеет смысл, спасибо

0
Franz 18 Апр 2020 в 21:09
Вы имеете в виду, что публикация WM_MOUSEMOVE / WM_NCMOUSEMOVE не помогает?
 – 
Alex Guteniev
19 Апр 2020 в 11:36

1 ответ

Есть много мест больше, чем WM_MOUSEMOVE сообщение lParam.

Есть функция GetMessagePos. Его можно подделать, установив хуки Windows и изменив MSG::pt, поэтому вызов GetMessagePos вернет смоделированное положение курсора вместо фактического.

Но есть GetCursorPos и, возможно, какие-то другие способы получить положение мыши, например WM_INPUT. Я думаю, что в конечном итоге только перемещение курсора (на SetCursorPos или на SendInput) может покрыть большинство из них.

0
Alex Guteniev 19 Апр 2020 в 11:43