如何使用 PyAutoGui 加速 while 循环?

问题描述 投票:0回答:2

我正在为 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")))
python pyautogui
2个回答
0
投票

来自文档

就像魔法师学徒中的魔法扫帚被编程为不断向浴缸注水(然后过度注水)一样,程序中的错误可能会使其失控。如果鼠标光标自行移动,则很难使用鼠标关闭程序。

作为一项安全功能,默认启用故障安全功能。当调用 PyAutoGUI 函数时,如果鼠标位于主监视器的四个角中的任何一个,它们将引发 pyautogui.FailSafeException。调用每个 PyAutoGUI 函数后会有十分之一秒的延迟,以便用户有时间将鼠标猛击到角落以触发故障保护。

您可以通过设置 pyautogui.FAILSAFE = False 来禁用此故障保护。我强烈建议您不要禁用故障保护。

第十秒延迟由 pyautogui.PAUSE 设置设置,默认为 0.1。您可以更改该值。还有一个 pyautogui.DARWIN_CATCH_UP_TIME 设置,它在键盘和鼠标事件之后在 macOS 上增加了额外的延迟,因为操作系统在 PyAutoGUI 发出这些事件后似乎需要延迟。默认设置为 0.01,增加了额外的百分之一秒的延迟。

因此,如果您想“加速”循环,可以减小

pyautogui.PAUSE
值。但是,请记住,这将使您没有时间在需要时激活故障保护。


0
投票

将 pyautgui.PAUSE 设置为一个较小的数字。操作之间的默认值为 0.1 秒。 这是示例代码:

导入pyautogui pyautogui.PAUSE = 0.01 # 可以是浮点数或整数

#这将提高你的垃圾邮件机器人/自动点击器/anthing 的速度

© www.soinside.com 2019 - 2024. All rights reserved.