C ++: отправка щелчка мышью с использованием PostMessage / SendMessage

В данный момент я пытаюсь отправить правую кнопку мыши в компьютерную игру, не затрагивая мой видимый указатель мыши.
Я не уверен, что игра просто не нравится или я делаю что-то не так.
Вот короткая версия моего кода:

WORD tx = 500;
WORD ty = 500;
HWND windowHandle = FindWindow(NULL,TEXT("Game title"));
if (windowHandle != 0) {
SendMessage(windowHandle, WM_RBUTTONDOWN, MK_RBUTTON, MAKELPARAM(tx, ty));
Sleep(50);
SendMessage(windowHandle, WM_RBUTTONUP, MK_RBUTTON, MAKELPARAM(tx, ty));
Sleep(50);
std::cout << "message sent..." << std::endl;
}

Я пробовал это много раз и убедился, что окно с играми находится сверху, активно и т. Д., Но игра не регистрирует мой щелчок .. (хотя «сообщение отправлено …» печатается каждый раз)
Я знаю, что мог бы также использовать SendInput, но сначала я хочу убедиться, что это действительно невозможно с помощью PostMessage.

2

Решение

Я использовал следующий метод для имитации щелчка правой кнопкой мыши в Qt / C ++. Посмотрите, работает ли это:

mouse_event (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_RIGHTDOWN, nX, nY, 0, 0);
mouse_event (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_RIGHTUP, nX, nY, 0, 0);

Были использованы следующие библиотеки: windows.h и winuser.h

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]