【发布时间】:2022-11-18 14:51:15
【问题描述】:
我正在尝试创建一个脚本,在断开连接时自动重新加入 roblox 游戏。我一直在使用 ctypes 获取屏幕上的一个像素,如果该像素匹配一种颜色,它应该会自动按下重新加入按钮。问题是它不会按下按钮。经过一些故障排除后,我发现鼠标移动不会注册到游戏中,就像我手动移动鼠标一样,它会点击按钮。
简而言之,游戏不会检测来自 pyautogui 的鼠标移动。如果我手动移动鼠标,它会注册。
视频示例: https://youtu.be/VvAfHHXul8Q
代码:
import pyautogui as py
import keyboard
import tkinter
import requests
from ctypes import windll
from time import sleep
key = "m"
toggled = False
rjcolor = 16777215
root = tkinter.Tk()
root.withdraw()
width, height = root.winfo_screenwidth(), root.winfo_screenheight()
dc= windll.user32.GetDC(0)
def getpixel(x,y):
return windll.gdi32.GetPixel(dc,x,y)
while True:
if keyboard.is_pressed(key):
toggled = not toggled
print("toggled to " + str(toggled))
sleep(0.5)
if toggled == True:
py.moveTo(width / 2, 800)
py.click(button='left')
if getpixel(1050, 600) == rjcolor:
print("disconnected, waiting until internet back online!")
while True:
try:
requests.head("http://www.google.com/", timeout=3)
print('The internet connection is active, rejoining.')
py.moveTo(1050, 590)
py.mouseDown(button='left')
sleep(0.1)
py.mouseUp(button='left')
break
except requests.ConnectionError:
print("The internet connection is down")
sleep(3)
sleep(0.1)
【问题讨论】: