Cómo ajustar la configuración del registro Programatically protector de pantalla de Windows

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

  •  21-09-2019
  •  | 
  •  

Pregunta

Estoy trabajando en código que se supone que debe iniciar el protector de pantalla definida por las preferencias del usuario. (El código es en Java, pero sólo se ejecuta en Windows.) Mi enfoque actual es fijar el valor ScreenSaveTimeOut en el registro a 1; En teoría, esto debería dejar el protector de pantalla en un retraso de sólo un segundo.

Sin embargo, en la práctica, no hace tal cosa. He golpeado los valores, tanto en HKEY_CURRENT_USER \ Control Panel \ Desktop \ ScreenSaveTimeOut y HKEY_USERS.DEFAULT \ Control Panel \ Desktop \ ScreenSaveTimeOut sin resultados. Puedo ver los valores cambian cuando un incendio regedit, pero la "espera" valor en Propiedades de pantalla -.> Protector de pantalla no cambia

Un hilo de Expertos-Exchange indica que debo hacer esto para hacer los cambios con efecto inmediato:

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

... pero eso no parece hacer nada.

Cualquier consejo o ideas sobre lo que estoy haciendo mal?

¿Fue útil?

Solución

Para activar el protector de pantalla, puede que le resulte más fácil sólo para ejecutar el archivo SCR con el parámetro a '/ s', así:

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

O, no puedo decir mucho acerca de cómo hacer esto desde Java, pero si se puede llamar a las funciones en user32.dll se puede controlar el protector de pantalla como un usuario final. Aquí hay un par de enlaces:

(Por último, está el método de .NET, pero de nuevo no tengo idea de cómo conseguir que a partir de Java: http://zayko.net/post/C-How-To-Disable-Windows-Screensaver-programmatically.aspx )

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top