找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 242|回复: 30

[求助] 需要一个定时开启某个屏保和设置屏保时间的批处理或注册表

[复制链接]
发表于 13 小时前 | 显示全部楼层 |阅读模式
如题,需要:

在每天8点至下午6点,将某个屏保(如“时钟”屏保)的启动时间设置为999;
在下午6点至第二天8点,将某个屏保(如“时钟”屏保)的启动时间设置为1


看看哪个高手能支持下,做成批处理,我放到计划任务里面去,谢谢
发表于 13 小时前 | 显示全部楼层
问一下 AI 看看有没有
回复

使用道具 举报

发表于 13 小时前 | 显示全部楼层
看上去是公家单位的。pc不建议不关机,笔记本可以不关机。不关机机器会越来越慢;不如设置个6点自动关机。

点评

不是公家电脑,是自己用PC做的文件服务器,设置了时钟屏幕。白天这台机器要干点活,晚上用时钟屏保当夜间时钟用。  详情 回复 发表于 12 小时前
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
感谢分享!
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
自己去看下,百度 AI 的有没有用:
https://chat.baidu.com/search?wo ... 9586174458379%22%7D
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
完整批处理脚本(.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

点评

谢谢,我测试一下  详情 回复 发表于 12 小时前
回复

使用道具 举报

 楼主| 发表于 12 小时前 | 显示全部楼层
通过 手动修改  ScreenSaveTimeOut  好像无效

点评

有没刷新  详情 回复 发表于 9 小时前
回复

使用道具 举报

 楼主| 发表于 12 小时前 | 显示全部楼层
yyz2191958 发表于 2026-3-19 10:23
完整批处理脚本(.bat)
bat
Copy Code

谢谢,我测试一下
回复

使用道具 举报

 楼主| 发表于 12 小时前 | 显示全部楼层
窄口牛 发表于 2026-3-19 10:17
看上去是公家单位的。pc不建议不关机,笔记本可以不关机。不关机机器会越来越慢;不如设置个6点自动关机。 ...

不是公家电脑,是自己用PC做的文件服务器,设置了时钟屏幕。白天这台机器要干点活,晚上用时钟屏保当夜间时钟用。

点评

晚上用时钟屏保当夜间时钟用——————耗电呀  详情 回复 发表于 12 小时前
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
冰华 发表于 2026-3-19 10:40
不是公家电脑,是自己用PC做的文件服务器,设置了时钟屏幕。白天这台机器要干点活,晚上用时钟屏保当夜间 ...

晚上用时钟屏保当夜间时钟用——————耗电呀

点评

有屋顶光伏发电和储能系统,电,不存在问题  详情 回复 发表于 12 小时前
回复

使用道具 举报

 楼主| 发表于 12 小时前 | 显示全部楼层
yyz2191958 发表于 2026-3-19 10:43
晚上用时钟屏保当夜间时钟用——————耗电呀

有屋顶光伏发电和储能系统,电,不存在问题

点评

哇,强大啊  详情 回复 发表于 12 小时前
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
冰华 发表于 2026-3-19 10:45
有屋顶光伏发电和储能系统,电,不存在问题

哇,强大啊
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
  1. echo off
  2. :: 获取当前时间(格式 HH:mm)
  3. for /f "tokens=1-4 delims=:. " %%a in ("%time%") do (
  4.     set /a hour=%%a
  5. )

  6. :: 判断当前时间是否在白天(8:00 - 18:00)
  7. if %hour% geq 8 if %hour% lss 18 (
  8.     goto set_day
  9. ) else (
  10.     goto set_night
  11. )

  12. :set_day
  13. :: 设置白天屏保参数(999分钟)
  14. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t reg_sz /d 999 /f
  15. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE /t reg_sz /d "%SystemRoot%\system32\ssclock.scr" /f
  16. echo 屏保已设置为白天模式(999分钟)。
  17. goto end

  18. :set_night
  19. :: 设置夜间屏保参数(1分钟)
  20. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t reg_sz /d 1 /f
  21. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE /t reg_sz /d "%SystemRoot%\system32\ssclock.scr" /f
  22. echo 屏保已设置为夜间模式(1分钟)。
  23. goto end

  24. :end
  25. rundll32.exe user32.dll, UpdatePerUserSystemParameters
  26. echo 设置完成,屏保参数已更新。
  27. timeout /t 3 >nul
复制代码



点评

謝謝分享,非常感謝您!  详情 回复 发表于 10 小时前
好人  发表于 12 小时前

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
顶一下。。。。。
回复

使用道具 举报

 楼主| 发表于 11 小时前 | 显示全部楼层
要修订下:
注册表里面的屏幕保护时间是按秒,也就是1分钟是 60,9999分钟是 599940
回复

使用道具 举报

发表于 11 小时前 | 显示全部楼层
本帖最后由 门口 于 2026-3-19 12:25 编辑

实际用不着写一个批处理里,在批处理检查判断时间比较繁琐和容易出错,而且你都用计划任务了,直接写两个批处理分时段执行不是更简单?
如果再简化的话,还可以直接定时下午6点时候直接启动屏幕保护即可。

补充:屏幕保护程序可以直接加 /s 参数启动,无论是批处理还是开始菜单运行(可不加/s)或者在计划任务里都可以直接运行。
当然如果你还可能偶尔操作电脑的话,是需要调整屏幕保护的超时时间的,这部分也可以直接在计划任务里增添操作步骤。

点评

有道理  发表于 11 小时前

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

发表于 11 小时前 | 显示全部楼层
支持13#热心坛友
回复

使用道具 举报

发表于 10 小时前 | 显示全部楼层
本帖最后由 窄口牛 于 2026-3-19 16:32 编辑

那样的话就是十六楼的就可以,甚至你还可以存为两个电源计划或者两个主题,可能主题不会修改屏保?但电源计划一定可以,直接按时修改电源计划就好。
回复

使用道具 举报

发表于 10 小时前 | 显示全部楼层

謝謝分享,非常感謝您!
回复

使用道具 举报

发表于 9 小时前 | 显示全部楼层
冰华 发表于 2026-3-19 10:33
通过 手动修改  ScreenSaveTimeOut  好像无效

有没刷新
回复

使用道具 举报

发表于 8 小时前 | 显示全部楼层
来了解下
回复

使用道具 举报

发表于 7 小时前 | 显示全部楼层
要修改屏保启动时间,有两个问题,
1,注册表直接修改时间无法立即生效,
2、批处理的系统配置更新命令 rundll32.exe user32.dll, UpdatePerUserSystemParameters 有系统bug,也就是有大概率执行无效,需多次执行。

根据楼主的要求,只是特定时间启用和禁用屏保,
可以使用下面的注册表键值来执行。不需要系统配置更新,即改即生效。
前提是预先要修改好使用的屏保和生效时间即可。

  1. Windows Registry Editor Version 5.00

  2. [HKEY_CURRENT_USER\Control Panel\Desktop]
  3. ; 1表示屏保启用,0表示屏保禁用
  4. "ScreenSaveActive"="1"
复制代码
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 半小时前 | 显示全部楼层
计划任务自己不能完成这个功能吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-3-19 23:18

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表