|
|
完整批处理脚本(.bat)
bat
Copy Code
@echo off
setlocal enabledelayedexpansion
:: 获取当前系统时间(HH:MM 格式)
for /f "tokens=1-2 delims=:" %%a in ('time /t') do (
set hour=%%a
set minute=%%b
)
:: 去除前导空格(time /t 输出可能含空格)
set hour=!hour: =!
:: 判断时间段:8:00 - 18:00 为白天,其余为夜间
if !hour! geq 08 (
if !hour! lss 18 (
set target=999
) else (
set target=1
)
) else (
set target=1
)
:: 写入注册表
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d !target! /f >nul
:: 刷新屏保设置(立即生效)
rundll32.exe user32.dll,UpdatePerUserSystemParameters
:: 可选:输出当前设置
echo 屏保等待时间已设置为 !target! 秒
pause
⚙️ 使用方法
新建文件:打开记事本,粘贴上述代码
保存为 .bat:另存为 ScreenSaverSwitch.bat,编码选 ANSI
运行脚本:双击执行,或通过任务计划程序设置为每小时自动运行
验证效果:
打开注册表编辑器(regedit)
导航至 HKEY_CURRENT_USER\Control Panel\Desktop
查看 ScreenSaveTimeOut 值是否随时间自动切换
🕒 自动化建议:使用任务计划程序
为实现全天候自动切换,请将脚本加入Windows任务计划程序:
表格
项目 设置
触发器 每天 08:00 和 18:00 各触发一次
操作 启动程序:C:\Path\To\ScreenSaverSwitch.bat
条件 勾选“只有在计算机使用交流电源时才启动”(可选)
设置 勾选“如果任务已运行,则排队”
✅ 此方式无需持续运行脚本,系统定时触发,稳定可靠。
📹 操作演示视频推荐
为帮助您直观掌握脚本运行与注册表修改流程,建议观看以下视频教程:
⚠️ 注意事项
屏保样式需预先设置:脚本仅控制等待时间,请确保已在“屏幕保护程序设置”中选中“时钟”屏保
生效延迟:部分系统需重新登录或重启资源管理器(taskkill /f /im explorer.exe & start explorer.exe)才能完全生效
兼容性:适用于 Windows 10 / 11,注册表路径一致
备份建议:运行前可导出注册表项:
bat
Copy Code
reg export "HKEY_CURRENT_USER\Control Panel\Desktop" "C:\ScreenSaverBackup.reg |
|