JNA |User32 # PostMessage WM_MOUSEMOVE - PullRequest
       30

JNA |User32 # PostMessage WM_MOUSEMOVE

0 голосов
/ 11 октября 2019

Я новичок в использовании JNA. Я пытаюсь смоделировать движение мыши в окне. У меня есть несколько вопросов;

Я понимаю, что может отправлять события ввода мыши с помощью PostMessage, с JNA это выглядит так:

PostMessage (WinDef.HWND hWnd, int msg, WinDef.WPARAMwParam, WinDef.LPARAM lParam)

Может ли кто-нибудь разбить эти параметры для меня? Во-первых, ручка окна, достаточно просто. Согласно документам, второе - это сообщение, которое я хочу отправить. Хорошо, поэтому я считаю, что хочу это:

WM_NMOUSEMOVE

WM_MOUSEMOVE - это сообщение, которое я хочу, но параметр вызывает int - может кто-то объяснить, что япредположим, что делать здесь?

Если сделать еще один шаг, оставшиеся 2/4 параметра - это WinDef.WPARAM и inDef.LPARAM. Снова обращаясь к документам WM_MOUSEMOVE: «WPARAM Указывает, не работают ли различные виртуальные ключи.»

Так можно ли передать это значение как ноль, если нет ключей, которые должны быть недоступны? В противном случае он дает мне список этих кодов, которые могут быть использованы, того же типа, который имеет ссылку на WM_MOUSE MOVE "например; 0x0008) Может кто-нибудь сказать мне, на что ссылаются эти типы последовательностей и как я их использую?

И наконец, для LPARAM «... младшее слово задает координату х .. старшее слово задает координату у курсора». Хорошо, так что это может показаться достаточно простым, однако JNA's Windef.LPARAM допускает только 1 параметр (длинный). В то время как в [то, что похоже на C] API я заметил, что есть MAKELPARAM (1, 2). Так как я могу указать координаты в LPARAM JNA?

Может кто-нибудь предоставить рабочий фрагмент - используя JNA для отправки события перемещения мыши в окно. Заранее спасибо!

...