首页 > 解决方案 > 使用winapi模拟鼠标点击并在窗口中滚动(android模拟器)

问题描述

我正在尝试模拟点击(在我的情况下是手指点击)并在窗口中滚动,特别是 android 模拟器。代码很简单:

PostMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(200, 400));
std::this_thread::sleep_for(std::chrono::milliseconds(50));
PostMessage(hwnd, WM_MOUSEMOVE, MK_LBUTTON, MAKELPARAM(200, 500));
std::this_thread::sleep_for(std::chrono::milliseconds(50));
PostMessage(hwnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(200, 500));
std::this_thread::sleep_for(std::chrono::milliseconds(50));

它工作得很好,除非真正的鼠标光标在那个窗口上,它会干扰模拟的鼠标移动。因此,例如,如果代码应该向上滚动,而鼠标光标的移动方向与模拟移动相反,则应用程序会尝试同时滚动两种方式。

执行此代码时,是否有任何方法可以阻止特定窗口的真实鼠标输入?或者也许有任何其他方法可以阻止真正的鼠标干扰?

标签: c++winapi

解决方案


推荐阅读