本文目录导读:

我来帮你创建一个自动设置护眼模式的脚本,这里提供Windows和macOS两个版本:
Windows版本(PowerShell脚本)
# 自动护眼模式切换脚本
# 支持Windows 10/11
# 设置默认时间(可修改)
$DayStartTime = "08:00" # 日间模式开始时间
$NightStartTime = "18:00" # 夜间模式开始时间
# 定义注册表路径
$RegistryPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize"
# 创建计划任务函数
function Set-ScheduleTask {
param(
[string]$TaskName,
[string]$Time,
[string]$Mode
)
# 创建计划任务动作
$Action = New-ScheduledTaskAction -Execute "powershell.exe" `
-Argument "-WindowStyle Hidden -Command `"Set-ItemProperty -Path '$RegistryPath' -Name 'AppsUseLightTheme' -Value $Mode`""
# 创建计划任务触发器
$Trigger = New-ScheduledTaskTrigger -Daily -At $Time
# 注册计划任务
Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $Trigger -Force
Write-Host "计划任务 $TaskName 已创建,将在 $Time 执行" -ForegroundColor Green
}
# 获取管理员权限
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Start-Process PowerShell -Verb RunAs "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`""
exit
}
Write-Host "开始创建护眼模式计划任务..." -ForegroundColor Cyan
# 创建日间模式任务(浅色)
Set-ScheduleTask -TaskName "DayMode" -Time $DayStartTime -Mode 1
# 创建夜间模式任务(深色)
Set-ScheduleTask -TaskName "NightMode" -Time $NightStartTime -Mode 0
Write-Host "`n护眼模式自动切换已完成配置!" -ForegroundColor Green
Write-Host "日间模式 ($DayStartTime): 浅色主题" -ForegroundColor Yellow
Write-Host "夜间模式 ($NightStartTime): 深色主题" -ForegroundColor Yellow
# 可选:立即切换到夜间模式
Write-Host "`n是否立即切换到夜间模式?(Y/N)" -NoNewline
$response = Read-Host
if ($response -eq 'Y') {
Set-ItemProperty -Path $RegistryPath -Name 'AppsUseLightTheme' -Value 0
Write-Host "已切换到夜间模式" -ForegroundColor Green
}
Windows版本(Python脚本)
import time
import schedule
import subprocess
import sys
import os
class EyeComfortManager:
def __init__(self):
self.day_start = 8 # 早上8点
self.night_start = 18 # 晚上6点
def set_windows_theme(self, is_light):
"""设置Windows主题模式"""
import winreg
try:
# 打开注册表项
key = winreg.OpenKey(
winreg.HKEY_CURRENT_USER,
r"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize",
0, winreg.KEY_WRITE
)
# 设置系统主题
winreg.SetValueEx(key, "SystemUsesLightTheme", 0, winreg.REG_DWORD, 1 if is_light else 0)
# 设置应用主题
winreg.SetValueEx(key, "AppsUseLightTheme", 0, winreg.REG_DWORD, 1 if is_light else 0)
winreg.CloseKey(key)
print(f"{'日间' if is_light else '夜间'}模式已启动")
except Exception as e:
print(f"Error setting theme: {e}")
def enable_night_light(self):
"""启用Windows夜间模式"""
try:
# 使用Windows设置API(需要Windows 10 1709+)
subprocess.run(['powershell', '-Command',
'Set-ItemProperty -Path "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\CloudStore\\Store\\DefaultAccount\\Current\\default$windows.data.bluelightreduction.bluelightreductionstate" -Name "Data" -Value "AQAHBOQBAAAAAAAAAAQAAAA=" -Type Binary'])
print("夜间模式已启用")
except Exception as e:
print(f"Error enabling night light: {e}")
def day_mode(self):
"""切换到日间模式"""
self.set_windows_theme(True)
print(f"[{time.strftime('%H:%M')}] 切换到日间模式")
def night_mode(self):
"""切换到夜间模式"""
self.set_windows_theme(False)
self.enable_night_light()
print(f"[{time.strftime('%H:%M')}] 切换到夜间模式")
def main():
manager = EyeComfortManager()
# 根据当前时间设置初始模式
current_hour = time.localtime().tm_hour
if manager.night_start <= current_hour or current_hour < manager.day_start:
manager.night_mode()
else:
manager.day_mode()
# 设置自动切换
schedule.every().day.at("08:00").do(manager.day_mode)
schedule.every().day.at("18:00").do(manager.night_mode)
print("护眼模式自动切换已启动")
print("切换时间:")
print(f" 日间模式:{manager.day_start}:00")
print(f" 夜间模式:{manager.night_start}:00")
print("按 Ctrl+C 停止")
try:
while True:
schedule.run_pending()
time.sleep(30) # 每30秒检查一次
except KeyboardInterrupt:
print("\n护眼模式脚本已停止")
if __name__ == "__main__":
main()
macOS版本(AppleScript)
-- macOS 自动护眼模式设置
-- 需要系统权限控制
use framework "Foundation"
use framework "AppKit"
-- 定义切换时间
property dayStartTime : "08:00"
property nightStartTime : "18:00"
-- 设置深色模式
on setDarkMode()
do shell script "defaults write -g AppleInterfaceStyle Dark"
display notification "已切换到夜间护眼模式" with title "护眼模式"
end setDarkMode
-- 设置浅色模式
on setLightMode()
do shell script "defaults delete -g AppleInterfaceStyle"
display notification "已切换到日间模式" with title "护眼模式"
end setLightMode
-- 获取当前时间
set currentTime to time string of (current date)
-- 判断当前应该使用什么模式
if currentTime > nightStartTime or currentTime < dayStartTime then
setDarkMode()
else
setLightMode()
end if
-- 创建计划任务(需要在系统偏好设置中添加)
display dialog "请在弹出的系统偏好设置中添加自动切换计划:
1. 打开 系统偏好设置 → 通用 → 自动切换外观
2. 设置为 '自定义'
3. 设置时间为 " & dayStartTime & " 和 " & nightStartTime buttons {"知道了"} default button 1
使用说明
Windows PowerShell版本:
- 以管理员身份运行PowerShell
- 将脚本保存为
.ps1文件 - 运行脚本自动创建计划任务
Python版本:
安装依赖:
pip install schedule
运行:
python eye_comfort.py
优化建议
- 调整切换时间:修改脚本中的时间变量设置
- 色温调节:Windows可以使用f.lux,macOS内置Night Shift
- 定时提醒:定期提醒休息眼睛
- 环境感知:配合环境光传感器自动调节
需要我解释原理或添加额外功能(如色温调节、休息提醒等)吗?