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

如何使用pyautogui等待到指定时间后自动执行截屏操作

解决方案

你可以用Python内置的时间处理模块或者第三方定时库实现,以下是两种可行方案:

方案1:仅用标准库实现(无额外依赖)

不需要安装第三方包,适合仅需单次/简单定时的场景:

import time
from datetime import datetime
import pyautogui

# 配置目标执行时间:13点即为下午1点
TARGET_HOUR = 13
TARGET_MIN = 0
TARGET_SEC = 0

while True:
    current_time = datetime.now()
    # 匹配到目标时间触发截屏
    if (current_time.hour == TARGET_HOUR 
        and current_time.minute == TARGET_MIN 
        and current_time.second == TARGET_SEC):
        # 替换为你原有可正常运行的截屏代码
        screenshot = pyautogui.screenshot()
        screenshot.save(f"screenshot_{current_time.strftime('%Y%m%d_%H%M%S')}.png")
        # 仅需执行一次就保留break,需要每日重复执行删除即可
        break
    # 每秒校验一次,降低CPU占用
    time.sleep(1)

注意事项:

  • 程序运行期间不能关闭终端/进程,否则定时任务会失效,需要后台运行的话Windows可以打包为exe配置系统服务,Linux/Mac可以用nohup命令挂载进程

方案2:使用schedule库(适合多定时任务场景)

如果后续有扩展定时规则的需求,可以用第三方轻量定时库schedule,代码可读性更高:

  1. 先安装依赖:
    pip install schedule
  2. 实现代码:
import time
import schedule
import pyautogui
from datetime import datetime

def run_screenshot():
    # 替换为你原有可正常运行的截屏代码
    current_time = datetime.now()
    screenshot = pyautogui.screenshot()
    screenshot.save(f"screenshot_{current_time.strftime('%Y%m%d_%H%M%S')}.png")
    # 仅需执行一次就保留退出逻辑,需要每日重复执行删除即可
    import os
    os._exit(0)

# 配置每天13:00执行任务
schedule.every().day.at("13:00").do(run_screenshot)

while True:
    schedule.run_pending()
    time.sleep(1)

注意事项:

  • schedule支持灵活调整定时规则,比如按周、按小时、按分钟执行都可以直接修改配置,无需自行实现时间判断逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:39:00