Как программически настроить настройки реестра экрана Windows

StackOverflow https://stackoverflow.com/questions/1369754

  •  21-09-2019
  •  | 
  •  

Вопрос

Я работаю над кодом, который должен запустить заставку, определенную пользовательскими предпочтениями. (Код находится в Java, но будет запущен только под Windows.) Мой текущий подход - установить значение ScreensaVetimeout в реестре на 1; Теоретически, это должно пнуть заставку после задержки просто одну секунду.

Но на практике это ничего не делает. Я нажимал значения в обоих hkey_current_user control Panel Desktop Screensavetimeout и Hkey_users.default Панель управления Desktop ScreensaVetimeout без результатов. Я вижу, как значения меняются, когда я запускаю Regedit, но значение «wat» в свойствах дисплея -> заставка не меняется.

Поток экспертов, указанный на обмене, я должен сделать это, чтобы изменения вступили в действие немедленно:

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

... но это, похоже, ничего не сделало.

Любой совет или понимание того, что я делаю не так?

Это было полезно?

Решение

Чтобы активировать заставку, вам может быть проще, просто выполнить файл .scr с параметром '/s', например, так:

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

Или я не могу сказать много о том, как сделать это из Java, но если вы можете вызвать функции в пользователе32.dll, вы можете управлять экраном, как конечный пользователь. Вот пара ссылок:

(Наконец, есть метод .NET, но опять же, я понятия не имею, как получить это от Java: http://zayko.net/post/c-how-to-disable-windows-creensaver-programmaly.aspx)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top