如何用脚本实现护眼提示

wen 实用脚本 1

本文目录导读:

如何用脚本实现护眼提示

  1. 最简单的桌面提醒(Windows + Python)
  2. Linux/macOS 命令行版本
  3. 增强版:带自定义设置的Python脚本
  4. 使用现有工具(推荐)
  5. 安装依赖
  6. 使用建议

我来为您提供几种实现护眼提示的脚本方案,从简单到复杂:

最简单的桌面提醒(Windows + Python)

# eye_care.py
import time
import ctypes
import sys
def show_reminder():
    # Windows弹窗提示
    ctypes.windll.user32.MessageBoxW(0, 
        "该休息啦!看看远方,放松眼睛,活动一下身体~", 
        "护眼提醒", 
        0x40)  # 0x40 = 感叹号图标
def main():
    work_interval = 45 * 60  # 工作45分钟
    break_interval = 5 * 60   # 休息5分钟
    print("护眼提醒已启动!每45分钟提醒一次")
    try:
        while True:
            time.sleep(work_interval)
            show_reminder()
            print("休息时间...")
            time.sleep(break_interval)
    except KeyboardInterrupt:
        print("\n护眼提醒已停止")
if __name__ == "__main__":
    main()

Linux/macOS 命令行版本

#!/bin/bash
# eye_care.sh
WORK_TIME=2700  # 45分钟
BREAK_TIME=300   # 5分钟
echo "护眼提醒已启动!"
echo "工作时间: $((WORK_TIME/60))分钟"
echo "休息时间: $((BREAK_TIME/60))分钟"
while true; do
    sleep $WORK_TIME
    # 显示通知(适用于不同系统)
    if [[ "$OSTYPE" == "linux-gnu"* ]]; then
        notify-send "护眼提醒" "该休息啦!看看远方,活动一下~" -i dialog-warning
    elif [[ "$OSTYPE" == "darwin"* ]]; then
        osascript -e 'display alert "护眼提醒" message "该休息啦!看看远方,活动一下~"'
    fi
    echo "$(date +%H:%M) 休息时间!"
    sleep $BREAK_TIME
done

增强版:带自定义设置的Python脚本

# eye_care_enhanced.py
import time
import schedule
from plyer import notification
import tkinter as tk
from tkinter import ttk
import threading
class EyeCareApp:
    def __init__(self):
        self.work_interval = 900   # 默认15分钟(便于测试)
        self.break_interval = 300   # 默认5分钟
        self.running = False
    def show_notification(self, title, message):
        """显示通知"""
        try:
            # 使用plyer库跨平台通知
            notification.notify(
                title=title,
                message=message,
                app_name="护眼助手",
                timeout=10
            )
        except:
            print(f"通知: {title} - {message}")
    def eye_care_cycle(self):
        """护眼周期"""
        while self.running:
            self.show_notification("开始工作", "专注工作一段时间吧!")
            time.sleep(self.work_interval)
            self.show_notification("休息时间", "看看远方,做做眼保健操,活动一下!")
            time.sleep(self.break_interval)
    def start(self):
        """启动护眼提醒"""
        self.running = True
        thread = threading.Thread(target=self.eye_care_cycle, daemon=True)
        thread.start()
    def stop(self):
        """停止护眼提醒"""
        self.running = False
    def create_gui(self):
        """创建图形界面"""
        root = tk.Tk()
        root.title("护眼小助手")
        root.geometry("300x250")
        # 设置工作间隔
        ttk.Label(root, text="工作时间(分钟):").pack(pady=5)
        work_var = tk.IntVar(value=45)
        work_spin = ttk.Spinbox(root, from_=1, to=120, textvariable=work_var)
        work_spin.pack(pady=5)
        # 设置休息间隔
        ttk.Label(root, text="休息时间(分钟):").pack(pady=5)
        break_var = tk.IntVar(value=5)
        break_spin = ttk.Spinbox(root, from_=1, to=30, textvariable=break_var)
        break_spin.pack(pady=5)
        # 状态显示
        status_label = ttk.Label(root, text="未启动")
        status_label.pack(pady=10)
        def start_clicked():
            self.work_interval = work_var.get() * 60
            self.break_interval = break_var.get() * 60
            self.start()
            status_label.config(text="运行中...")
            start_btn.config(state="disabled")
            stop_btn.config(state="normal")
        def stop_clicked():
            self.stop()
            status_label.config(text="已停止")
            start_btn.config(state="normal")
            stop_btn.config(state="disabled")
        # 按钮
        btn_frame = ttk.Frame(root)
        btn_frame.pack(pady=20)
        start_btn = ttk.Button(btn_frame, text="开始", command=start_clicked)
        start_btn.pack(side="left", padx=5)
        stop_btn = ttk.Button(btn_frame, text="停止", command=stop_clicked, state="disabled")
        stop_btn.pack(side="left", padx=5)
        root.mainloop()
if __name__ == "__main__":
    app = EyeCareApp()
    app.create_gui()

使用现有工具(推荐)

Windows任务计划程序

# 创建计划任务
schtasks /create /tn "EyeCare" /tr "msg * 该休息啦!" /sc minute /mo 45

macOS launchd

<!-- ~/Library/LaunchAgents/com.eyecare.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.eyecare</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/osascript</string>
        <string>-e</string>
        <string>display alert "护眼提醒" message "该休息啦!"</string>
    </array>
    <key>StartInterval</key>
    <integer>2700</integer>
</dict>
</plist>

安装依赖

# Python方案依赖
pip install plyer schedule
# 或者使用通知
pip install notify-py

使用建议

  1. 推荐间隔:建议每20-30分钟休息,每次休息5分钟
  2. 多提醒方式:可以结合系统声音、桌面通知、命令行提示等
  3. 记录功能:可以记录每天的工作和休息时间
  4. 智能调节:根据时间段调整提醒频率(如午休时间不提醒)

您可以根据需求选择最合适的方案,如有具体需求,我可以为您定制!

抱歉,评论功能暂时关闭!