#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, если я немного не передвину свою физическую мышь.