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)