В данный момент я пытаюсь отправить правую кнопку мыши в компьютерную игру, не затрагивая мой видимый указатель мыши.
Я не уверен, что игра просто не нравится или я делаю что-то не так.
Вот короткая версия моего кода:
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.
Я использовал следующий метод для имитации щелчка правой кнопкой мыши в 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
Других решений пока нет …