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

问题描述 投票:2回答:1

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

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

c++ click postmessage mouseclick-event window-handles
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.