如何以编程方式调整 Windows 屏幕保护程序注册表设置

Bla*_*ppo 0 registry windows-screensaver

我正在处理应该启动由用户首选项定义的屏幕保护程序的代码。(代码是用 Java 编写的,但只能在 Windows 下运行。)我目前的方法是将注册表中的 ScreenSaveTimeOut 值设置为 1;从理论上讲,这应该会在仅延迟一秒钟后启动屏幕保护程序。

但在实践中,它没有这样的事情。我已经点击了 HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveTimeOut 和 HKEY_USERS.DEFAULT\Control Panel\Desktop\ScreenSaveTimeOut 中的值,但没有结果。当我启动 regedit 时,我可以看到这些值发生了变化,但显示属性 -> 屏幕保护程序中的“等待”值没有改变。

Experts-Exchange 线程表示我应该这样做以使更改立即生效:

%SystemRoot%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

……但这似乎没有任何作用。

关于我做错了什么的任何建议或见解?

ewa*_*all 5

要激活屏幕保护程序,您可能会发现使用“/s”参数执行 .SCR 文件更容易,如下所示:

C:\WINDOWS\system32\ssstars.scr /s
Run Code Online (Sandbox Code Playgroud)

或者,关于如何从 Java 执行此操作,我不能说太多,但是如果您可以调用 user32.dll 中的函数,您就可以像最终用户一样控制屏幕保护程序。这里有几个链接:

(最后,有 .NET 方法,但我也不知道如何从 Java 中获取它:http: //zayko.net/post/C-How-To-Disable-Windows-Screensaver-programmatically.aspx