我正在使用Python来控制鼠标在Android模拟器上进行一些自动点击。我正在使用pyautogui和PyDirectInput来控制鼠标;但是,当鼠标移动到模拟器上后,click() 函数会运行,但不起作用,并且不会发生单击,也不会出现错误。
以下是点击功能和主循环:
import pyautogui as pi
import time
import pydirectinput as pyd
def click_shit(x, y):
pyd.moveTo(x,y)
for i in range(0,200,1):
pyd.click()
time.sleep(0.04)
def click_reload(x,y,x2,y2):
pyd.moveTo(x,y)
pyd.click()
time.sleep(0.5)
pyd.moveTo(x2,y2)
pyd.click()
while 1 :
click_shit(x, y)
time.sleep(3)
click_reload(x,y,x2,y2)
time.sleep(1)
你的代码我看了几遍,并且自己测试了一下,我不认为是写的代码有问题。最有可能发生的情况是
pydirectinput
无法访问 Android 模拟器,这可能是由多种原因引起的。根据我的经验,继续前进的最佳方法是使用不同的模块。您提到使用pyautogui
,尽管您在使用该模块时没有发布代码(如果您发布代码以查看问题是否在那里,将会有所帮助)。
如代码中所写,在
click_****(x, y)
函数中,您有 pyd.moveTo(x, y)
,它将鼠标移动到所需的坐标 x 和 y。您必须将鼠标移动到单击之前的位置,这是不可取的。 Pyautogui
具有 click()
功能,可让您单击 (x, y) 坐标 ,而无需先 移动鼠标。当然,如果你真的想让鼠标移动,你可以使用 pyautogui 的 moveTo()
或 move()
函数,它允许你将鼠标移动到特定坐标,或者将鼠标移动一定数量的像素,具体取决于鼠标所在的位置。鼠标所在位置以及与屏幕的相对位置。
将所有这些组合到代码中,这是一个可能的解决方案:
import pyautogui as pi
import time
def click_****(x, y):
for i in range(0,200,1):
pi.click(x, y) #clicks at (x, y) coordinates
time.sleep(0.04)
def click_reload(x,y,x2,y2):
pi.click(x, y) #clicks at (x, y) coordinates
time.sleep(0.5)
pi.click(x2, y2) #clicks at (x2, y2) coordinates
while 1:
click_****(x, y)
time.sleep(3)
click_reload(x,y,x2,y2)
time.sleep(1)
这可能对你有用。但是,我不知道
pyautogui
是否能够访问您正在使用的平台,因此我决定包含另一个模块作为示例。 Pynput
允许控制和检测鼠标和键盘。
以下是示例代码片段:
from pynput.mouse import Button, Controller
import time
mouse = Controller()
def click_****(x, y):
mouse.position = (x, y) #sets mouse position to (x, y) coordinates
for i in range(0,200,1):
mouse.click(left, 1) #clicks once at current position
time.sleep(0.04)
def click_reload(x,y,x2,y2):
mouse.position = (x, y) #sets mouse position to (x, y) coordinates
mouse.click(left, 1) #clicks once at current position
time.sleep(0.5)
mouse.position = (x2, y2) #sets mouse position to (x2, y2)
mouse.click(left, 1) #clicks once at current position
while 1:
click_****(x, y)
time.sleep(3)
click_reload(x,y,x2,y2)
time.sleep(1)
这应该对你有用。当然,我知道这也可能有问题,所以我知道还有另一个名为
mouse
的 python 模块,它可以用来控制鼠标,但我不熟悉它。如果您想了解更多信息,或者我在此答案中建议的任何其他内容,您应该查看我下面的链接。
Pyautogui:https://pypi.org/project/PyAutoGUI