(如何)我可以从命令行更改屏幕保护程序启动的时间?

(如何)我可以从命令行更改屏幕保护程序启动的时间?

正如标题所问(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:

https://www.pcreview.co.uk/threads/utility-to-temporarily-change-the-screensaver.2321339/#post-7442568

但不能从命令行(即 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函数可以接受多个参数,在本例中我们只需要两个,uiActionuiParam

  • uiAction:操作的代码( 为 15 SPI_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

相关内容