是否可以将python中的click事件发送到后台的窗口?

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

因此,我正在尝试构建一个机器人来通过Bluestacks在我的PC上运行的移动游戏中自动执行某些操作。

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

我现在希望能够在这些坐标处将click事件发送到窗口,但是由于我也想在机器人在后台运行时执行其他操作,因此我正在寻找一种发送鼠标事件的方法直接将其移至窗口(即使已最小化/在后台),而不会影响我做其他事情或将窗口置于前景或最小化时的鼠标移动。这可能吗?

python android-emulator mouseevent bluestacks
1个回答
0
投票

我了解到,您需要使用正确的库才能正常工作。我发现笔译效果很好。除了您要尝试执行的操作外,它还可以在操作系统处理之前在鼠标和键盘上获取用户输入。

让我帮助您节省遍历所有不同库的大量时间:我建议使用Pynput。您可以阅读有关它的内容here。在下面,您可以找到我从该网站复制的示例代码(应该离线):

from pynput.mouse import Button, Controller

mouse = Controller()

# Read pointer position
print('The current pointer position is {0}'.format(
    mouse.position))

# Set pointer position
mouse.position = (10, 20)
print('Now we have moved it to {0}'.format(
    mouse.position))

# Move pointer relative to current position
mouse.move(5, -5)

# Press and release
mouse.press(Button.left)
mouse.release(Button.left)

# Double click; this is different from pressing and releasing
# twice on Mac OSX
mouse.click(Button.left, 2)

# Scroll two steps down
mouse.scroll(0, 2)
© www.soinside.com 2019 - 2024. All rights reserved.