c++ - 使用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));
它工作得很好,除非真正的鼠标光标在那个窗口上,它会干扰模拟的鼠标移动。因此,例如,如果代码应该向上滚动,而鼠标光标的移动方向与模拟移动相反,则应用程序会尝试同时滚动两种方式。
执行此代码时,是否有任何方法可以阻止特定窗口的真实鼠标输入?或者也许有任何其他方法可以阻止真正的鼠标干扰?
解决方案
推荐阅读
- azure - 使用 Java 检索 Azure Monitor 事件的最佳方法是什么?
- go - 如何使用 go 修复 POST 404 错误?这不是源代码错误
- php - 如何检查按钮的值并根据使用 phpmailer 检查的输入在正文邮件中创建条件?
- node.js - Nodejs each 和 foreach 循环
- java - 我想在我的应用程序中使用 NavigationView,但我找不到为 androidX 实现的正确依赖项
- python - Pandas 使用动态列名聚合
- encryption - MD5 降低 AES 的可靠性?
- android - 我想访问所有应用程序的使用时间。我如何在颤振中编程?
- nginx - 动态更改 nginx 根目录
- rest - 具有不同响应结构的 REST API 过滤 GET