python - 有没有办法在python中将点击事件发送到后台的窗口?

标签 python android-emulator mouseevent bluestacks

所以我正在尝试构建一个机器人来自动化我通过 Bluestacks 在我的电脑上运行的手机游戏中的一些操作。

我的程序截取窗口的屏幕截图,在图像中查找某些按钮模板并返回它们的坐标。

我现在希望能够在这些坐标处向窗口发送点击事件,但由于我还想在机器人在后台运行时做其他事情,我正在寻找一种方法将鼠标事件直接发送到窗口(即使它被最小化/在后台),而不会影响鼠标的移动,而我正在做其他事情或将窗口带到前台/取消最小化它。这可能吗?

最佳答案

基于德米特里的回答。 x y 必须是相对于 Bluestacks 窗口而不是屏幕的坐标。

def click(x, y):
    hWnd = win32gui.FindWindow(None, "BlueStacks")
    lParam = win32api.MAKELONG(x, y)

    hWnd1= win32gui.FindWindowEx(hWnd, None, None, None)
    win32gui.SendMessage(hWnd1, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lParam)
    win32gui.SendMessage(hWnd1, win32con.WM_LBUTTONUP, None, lParam)

click(100,100)

关于python - 有没有办法在python中将点击事件发送到后台的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59285854/

相关文章:

c++ - OpenGL/GLUT 中的鼠标拖动对象

css - :active pseudo class? 鼠标松开后如何改变按钮的css样式

python - 在这种情况下如何配置 __init__.py?

python - 无法在 PyCharm 上导入 cv2

android - 圆形 Android Wear 模拟器使用的是矩形布局

android - Eclipse Android SDK 错误 : unknown virtual device name

python - 在同一个 CSV 文件中保存不同大小的多个列/变量

python - Docker 中的应用程序不更新

java - 不可用的共享库 - INSTALL_FAILED_MISSING_SHARED_LIBRARY

java - 将MouseListener添加到程序中