Pyautogui неправильно перемещает мышь в Roblox

#python #mouse #roblox

Вопрос:

Я пишу код на python, чтобы помочь мне чего-то добиться в игре Roblox. Я не буду вдаваться в подробности, но в основном цель состоит в том, чтобы автоматически нажимать в определенных точках экрана. Чтобы попытаться сделать это, я использую pyautogui.click(). Так, например, если бы точка, на которую мне нужно было нажать, была (300, 500), я бы сделал pyautogui.click(300, 500)

За пределами Roblox pyautogui работает просто отлично. Однако всякий раз, когда у меня открывается Roblox и я использую команды, он работает неправильно. Итак, допустим, мышь запускается с (0, 0), и я активирую щелчок (300, 500). Когда это происходит, курсор мыши не перемещается, и щелчок происходит в точке (0, 0), где первоначально находилась мышь. Однако, как только я слегка подвигаю настоящую мышь, курсор мыши телепортируется обратно в (300, 500), где он должен был быть.

Это делает невозможным делать то, что я хочу, потому что я хочу, чтобы программа щелкала в определенных местах без необходимости перемещать мою настоящую физическую мышь. Кто-нибудь знает, как я могу использовать python для правильного перемещения мыши?

Ответ №1:

Вы должны использовать 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)
 

Комментарии:

1. Это все еще вызывает ту же проблему. Хотя он отлично перемещает обычную мышь, он не синхронизируется с мышью Roblox, если я немного не передвину свою физическую мышь.