定时截屏服务

import os
import time
from datetime import datetime
from fastapi import FastAPI
from apscheduler.schedulers.background import BackgroundScheduler
import pyautogui
from PIL import Image

app = FastAPI()

# 确保截图保存目录存在
os.makedirs("screenshots", exist_ok=True)


def capture_screenshot():
    """截屏并保存到本地"""
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    filename = f"screenshots/screenshot_{timestamp}.png"

    try:
        # 使用 pyautogui 截屏
        screenshot = pyautogui.screenshot()
        screenshot.save(filename)
        print(f"Screenshot saved: {filename}")
    except Exception as e:
        print(f"Error capturing screenshot: {e}")


# 初始化定时任务调度器
scheduler = BackgroundScheduler()
scheduler.add_job(capture_screenshot, "interval", minutes=1)  # 每分钟执行一次
scheduler.start()


@app.on_event("shutdown")
def shutdown_event():
    """关闭应用时停止调度器"""
    scheduler.shutdown()


@app.get("/")
def read_root():
    return {"message": "FastAPI 定时截屏服务运行中"}


if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=5050)

 

posted @ 2025-09-01 21:05  ddzhen  阅读(8)  评论(0)    收藏  举报