正如标题所问(Windows 7)。(如何)我可以从命令行更改屏幕保护程序启动的时间吗?这可能吗?
通常情况下,我对于 5 分钟的设置很满意,但偶尔我想将其延长。我希望将两个长度绑定到热键(我知道如何做到这一点)。
我想我可以录制两个宏并使用它们,但我只是想知道是否有任何命令行选项(包括注册表更新)可以用来告诉 Windows 在 X 分钟不活动后启动屏幕保护程序。
(请注意,我不想立即启动屏幕保护程序;我想更改 Windows 在启动之前等待的时间长度)
提前致谢。
[答案] 我最终使用了@Gjordis 的答案的变体 - 但所有功劳都归功于他。
我不明白为什么我们需要 3 个操作:添加、删除然后重命名,然后将其减少到两个。
因为我想绑定到热键,所以我需要一次执行两个命令。通常,可以用分号分隔命令并将它们放在一行中执行(例如dir c:;dir d:
)。这会导致命令出错reg
,所以最后我有两个批处理文件。内容相同,只有持续时间不同。
奇怪的是 - 值已正确写入注册表,但控制面板/个性化/屏幕保护程序并不总是更新其 GUI。不过,我测试过,屏幕保护程序确实按预期运行。
@echo off
reg delete "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /f
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 180 /f
如果这对您有帮助,请对该问题点赞;-)
答案1
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f
值 600 以秒为单位,= 10 分钟有趣的是,正如所指出的,这仅在第一次有效。下次更改时,您需要创建一个新密钥,如下所示:
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOutTemp /t REG_SZ /d 300 /f
然后删除旧的
reg delete "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f
然后将新的复制到正确的名称
reg copy "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOutTemp "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut
希望这能起作用,并且您不会破坏您的计算机,但由于您没有这个注册表值,我认为删除它不会那么可怕。
REG 文档在此处:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/reg.mspx?mfr=true
答案2
事实上,这种方法(通过注册表)不起作用直到重启. 唯一的办法没有PC重启就是使用一个API:
但不能从命令行(即 VB 脚本)使用 API。原因如下:
http://forums.codeguru.com/showthread.php?31534-VBScript-and-API&p=86696#post86696
可以通过调用实用程序来完成设置超时时间(来自第一个链接),但不幸的是,这个小实用程序在互联网上不再存在。
答案3
作为前面描述的“单一用途”实用程序的替代方案,AutoHotkey 允许调用 Win32 API(以及系统参数信息A函数)直接作用。
下面这行代码可以完成这个工作:
DllCall("SystemParametersInfo", "Uint", 15, "Uint", 360)
该SystemParametersInfoA
函数可以接受多个参数,在本例中我们只需要两个,uiAction
和uiParam
。
uiAction
:操作的代码( 为 15SPI_SETSCREENSAVETIMEOUT
)。uiParam
:超时时间(以秒为单位)(本例中为 360 秒)。
我在 Windows 11 中测试了它,但它在以前的版本中也应该可以运行。
答案4
这对我来说很管用。我怀疑它是恶意软件,但我不能保证。在 Windows 11 中,我下载它并创建任何要固定的任务栏图标,右键单击,转到属性并更改快捷方式的路径和图标以匹配我下载它的 SetScrTimeout.exe。
我有一个(tskbar 图标)设置为 1 秒,另一个设置为 2400 秒,也就是 40 分钟。我在任务栏上的快捷方式属性中创建了一个热键。ctrl+shift+z 执行一个图标,ctrl+shift+x 执行另一个图标。
如果您将屏幕超时设置为 1 秒,它实际上需要几秒钟才能运行,因此如果您移动鼠标,它会在 2 或 3 秒后重新启动。只要您的鼠标在移动,它就不会激活。
当我暂停 YouTube 后入睡时,这很有用......
例子:
c:\users\johndoe\docs\SetScrTimeout.exe 10
https://github.com/DavisNT/SetScrTimeout
https://github.com/DavisNT/SetScrTimeout/releases/download/v1.0.0/SetScrTimeout.exe