C ++:使用PostMessage / SendMessage发送鼠标单击

时间:2013-11-24 11:42:10

标签: c++ click postmessage mouseclick-event window-handles

我正在尝试向计算机游戏发送右键,而不会影响我的可见鼠标指针 我不确定游戏是不喜欢它还是我做错了什么。 这是我的代码的简短版本:

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确实无法实现。

1 个答案:

答案 0 :(得分:0)

我使用以下方法在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