0

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

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

专家交流线程表明我应该这样做以使更改立即生效:

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

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

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

4

1 回答 1

5

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

C:\WINDOWS\system32\ssstars.scr /s

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

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

于 2009-09-02T20:03:17.343 回答