我正在为 Discord 制作一个非常简单的垃圾邮件机器人,只是为了恶作剧我的朋友。但是 while True: 命令非常慢。有更快的替代方案吗?
import PIL
import pyautogui, time
time.sleep(5)
pyautogui.FAILSAFE = True
while True:
pyautogui.hotkey("command", "v")
pyautogui.press("enter")
if (pyautogui.locateOnScreen("av.png")):
(pyautogui.click(pyautogui.locateCenterOnScreen("av.png")))
来自文档:
就像魔法师学徒中的魔法扫帚被编程为不断向浴缸注水(然后过度注水)一样,程序中的错误可能会使其失控。如果鼠标光标自行移动,则很难使用鼠标关闭程序。
作为一项安全功能,默认启用故障安全功能。当调用 PyAutoGUI 函数时,如果鼠标位于主监视器的四个角中的任何一个,它们将引发 pyautogui.FailSafeException。调用每个 PyAutoGUI 函数后会有十分之一秒的延迟,以便用户有时间将鼠标猛击到角落以触发故障保护。
您可以通过设置 pyautogui.FAILSAFE = False 来禁用此故障保护。我强烈建议您不要禁用故障保护。
第十秒延迟由 pyautogui.PAUSE 设置设置,默认为 0.1。您可以更改该值。还有一个 pyautogui.DARWIN_CATCH_UP_TIME 设置,它在键盘和鼠标事件之后在 macOS 上增加了额外的延迟,因为操作系统在 PyAutoGUI 发出这些事件后似乎需要延迟。默认设置为 0.01,增加了额外的百分之一秒的延迟。
因此,如果您想“加速”循环,可以减小
pyautogui.PAUSE
值。但是,请记住,这将使您没有时间在需要时激活故障保护。
将 pyautgui.PAUSE 设置为一个较小的数字。操作之间的默认值为 0.1 秒。 这是示例代码:
导入pyautogui pyautogui.PAUSE = 0.01 # 可以是浮点数或整数
#这将提高你的垃圾邮件机器人/自动点击器/anthing 的速度