Как программно настроить параметры реестра 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
... но это, похоже, ничего не делает.
Любой совет или понимание того, что я делаю неправильно?
1 ответ
Чтобы активировать заставку, вам может быть проще выполнить файл.SCR с параметром '/s', например так:
C:\WINDOWS\system32\ssstars.scr /s
Или я не могу сказать много о том, как сделать это из Java, но если вы можете вызывать функции в user32.dll, вы можете управлять хранителем экрана, как конечный пользователь. Вот пара ссылок:
- http://www.codeproject.com/KB/cs/ScreenSaverControl.aspx
- http://www.codeproject.com/KB/miscctrl/turning-screen-saver.aspx
(Наконец, есть метод.NET, но, опять же, я понятия не имею, как получить это из Java: http://zayko.net/post/C-How-To-Disable-Windows-Screensaver-programmatically.aspx)