You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python pyautogui脚本运行15分钟后自动停止 如何实现无限运行?

PyAutoGUI脚本运行15-30分钟自动停止的原因及解决办法

核心原因

  • 触发PyAutoGUI默认故障安全机制:PyAutoGUI默认开启故障安全,只要鼠标移动到屏幕左上角(0,0)附近就会主动抛出异常终止脚本。你的代码循环中每次都会把鼠标移到(0,35),离触发区域极近,哪怕是系统卡顿导致的微小坐标偏移、或者你不小心误碰鼠标,都可能触发该机制,而你只捕获了KeyboardInterrupt异常,触发故障安全的异常没有被捕获,脚本就会直接静默退出。
  • 未捕获的运行时异常:代码写死了固定坐标和窗口标题,一旦你切换了显示器分辨率、调整了Teams窗口状态、Teams窗口标题因为收到消息/切换页面发生变化,都会触发坐标越界、窗口找不到等异常,没有捕获逻辑的情况下脚本会直接停止。
  • 系统电源策略触发:如果你的电脑开启了无操作自动休眠、自动待机、硬盘自动关闭的策略,15-30分钟无手动操作就会进入低功耗状态,脚本自然停止运行。

解决办法

  1. 关闭故障安全机制,或者调整循环中的鼠标坐标远离左上角区域,在import语句后加一行配置即可:
pe.FAILSAFE = False
  1. 补充异常捕获逻辑,打印错误信息方便定位,不要只捕获键盘中断异常。
  2. 检查系统电源设置,关闭自动休眠、自动待机、自动关闭屏幕的相关策略。
  3. 尽量不要写死固定坐标,可以先获取当前屏幕分辨率再做相对定位,避免分辨率变化导致坐标越界。

优化后参考代码

import pyautogui as pe
import time
# 关闭故障安全
pe.FAILSAFE = False
# 增加1秒操作延迟避免操作过快报错
pe.PAUSE = 1

print ("************按CTRL-C退出程序************")
try:
    # 操作前先校验坐标是否在当前屏幕范围内
    screen_width, screen_height = pe.size()
    if 1915 < screen_width and 1070 < screen_height:
        pe.click(1915, 1070, 1, 3,'left')
    pe.hotkey('win','q')
    pe.write('Microsoft Teams')
    pe.press('enter')
    # 增加等待窗口加载的逻辑,避免窗口没找到报错
    time.sleep(5)
    teams_windows = pe.getWindowsWithTitle("Microsoft Teams")
    if teams_windows:
        teams_windows[0].maximize() 
    time.sleep(3)
except KeyboardInterrupt:
    pass
except Exception as e:
    print(f"初始化阶段报错:{e}")

try:
    while True:
        pe.moveTo(50, 100, 1) # 调整坐标远离左上角
        pe.moveTo(1116, 132, 1)
        time.sleep(10)
except KeyboardInterrupt:
    pass
except Exception as e:
    print(f"运行阶段报错:{e}")

内容的提问来源于stack exchange,提问作者RACHIT DAVE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:18:00