Щелчок мыши с помощью SendMessage () не передается окну - PullRequest
0 голосов
/ 25 апреля 2018

Проще говоря:

У меня есть 2 эмулятора, на которые я имитирую клик, используя SendMessage ()


Эмулятор, на который я могу отправить это Nox

Иерархия окон и дескриптор окна, которому я передаю сообщение:

Window hierarchy

Работает так же, как и предполагалось(Прослушивание сообщения с использованием spy ++) Nox

И код:

SendMessage(NoxPlayer, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(width, height));
SendMessage(NoxPlayer, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(width, height));
SendMessage(NoxPlayer, WM_MOUSEMOVE, 0, MAKELPARAM(width, height));

В конце я добавил WM_MOUSEMOVE, потому что noxplayer думает, что яудерживая L_Mouse, щелкните без него.


Теперь моя проблема здесь ... У меня есть другой эмулятор под названием "MEmu player"

Иерархия окон и дескриптор окна, который я передаюсообщение:

MEmu hierarchy

Но при передаче того же кода, что и раньше:

SendMessage(MEmu, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(width, height));
SendMessage(MEmu, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(width, height));
SendMessage(MEmu, WM_MOUSEMOVE, 0, MAKELPARAM(width, height));

Я не получаю смоделированного нажатия наприложение.Я попытался прослушать все сообщения, которые я передаю, но не нашел ни одного при просмотре всех видимых окон с помощью spy ++.


Затем я попытался прослушать, как обычный щелчок мыши будет выглядеть как сообщения с использованием spy ++ иполучил это:

MEmu

Для справки, вот как будет выглядеть тот же клик без симуляции на Nox Player:

Nox player message


Использую ли я неправильный код для отправки симулированного щелчка мыши, или я передаю его в неправильное окно?

1 Ответ

0 голосов
/ 25 апреля 2018

Хорошо, так ...

Мне удалось устранить проблему, выполнив одну простую вещь.

запуск моей программы с правами администратора

Поскольку я использую Microsoft Visual Studio для всего программирования, мне просто нужно было запустить Visual Studio в режиме администратора.

Исправлена ​​проблема при сохранении оригинального метода SendMessage () моделирования щелчка мыши

...