Pyautogui不能正确移动Roblox中的鼠标



我正在用python编写代码,以帮助我在Roblox游戏中完成某些任务。我不会讲太多细节,但基本上,目标是在屏幕上的某些点自动点击。为了实现这一点,我使用了pyautogui.click()。例如,如果我需要点击的点是(300,500),我就会使用pyautogui。点击(300、500)

在Roblox之外,pyautogui工作得很好。然而,每当我打开Roblox并使用命令时,它就不能正常工作。假设鼠标从(0,0)处开始,我在(300,500)处激活点击。当发生这种情况时,鼠标光标不会移动,并且单击发生在鼠标最初所在的位置(0,0)。然而,只要我稍微移动鼠标,鼠标光标就会传送回(300,500)它应该在的位置。

这使得我不可能做我想做的事情,因为我想让程序在不需要我移动实际的物理鼠标的情况下点击某些点。有人知道我怎么用python来正确移动鼠标吗?

你必须使用win32api和win32con来移动和点击鼠标,因为pyautogui有时很慢,所以我使用win32api代替。

这是我使用的代码。

from pyautogui import *
import pyautogui
import time
import win32api, win32con
def click(x,y):
win32api.SetCursorPos((x,y)) 
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
time.sleep(0.1) #uses time api, to simulate normal input.
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)

你必须使用pyautoit使其在roblox中工作,我使用autoit.mouse_click("left",x, y)使鼠标转到屏幕上的x和y位置并单击左键或右键。

是的,我一直得到同样的问题,所以我切换到AHK(自动热键)。我认为(我不知道后台发生了什么)win32 api调用由python没有使用深度方法,因为你必须下载并给予AHK权限才能实现这一点。所以Roblox可能已经找到了一种检测物理输入的方法,尽管他们仍然无法检测AHK发出的深度api调用

最新更新