c++ - una - como poner vidrio templado sin burbujas
¿Cómo evito los protectores de pantalla y duermo durante la ejecución de mi programa? (4)
En un programa de C ++ ejecutado en Win7, ¿hay alguna manera de simular un movimiento de mouse o algo así, solo para evitar que el protector de pantalla se inicie y el sistema se apague? Estoy buscando el enfoque mínimo y prefiero no usar .NET. Gracias, -un lunes
Esta suele ser una idea particularmente mala . El escritorio pertenece al usuario de su aplicación, no a su aplicación.
Si estuviera ejecutando una aplicación que desactivó mi protector de pantalla (o se movió alrededor de los íconos de mi escritorio o se agregó a mis diversas barras de herramientas de acceso rápido) sin mi permiso, se le arrojaría al oído con bastante rapidez.
Y, si usted es el usuario, no lo haga en su aplicación. Cámbielo manualmente como el resto de nosotros :-)
Si debe hacerlo (y le insto a que no lo haga, pero puede sentirse libre de ignorarlo), no creo que el método haya cambiado desde NT. Utiliza SystemParametersInfo
con SPI_SETSCREENSAVEACTIVE
para cambiar el comportamiento. Estos se encuentran en user32.dll
de memoria.
Pero tengo una vaga idea de haber visto problemas informados al usar ese método en Win7 y creo que la solución fue un cambio en el registro, al configurar ScreenSaveActive
en HKEY_CURRENT_USER/Control Panel/Desktop
en 0
(y de nuevo en 1
cuando terminaste).
No estoy muy seguro de por qué debes recurrir a esto. La desactivación simple de estas opciones en la configuración de energía funcionará.
¿Qué estás tratando de lograr haciendo eso? Es su aplicación un servicio. En caso de que sea así, entonces no necesita preocuparse por esto.
En caso de que su aplicación sea una aplicación de interfaz de usuario, tampoco puedo pensar en un caso de uso válido.
Eitherway necesitamos más información.
No te metas con la configuración del salvapantallas, usa SetThreadExecutionState . Esta es la API para informar a Windows sobre el hecho de que su aplicación está activa:
Permite que una aplicación informe al sistema que está en uso, lo que impide que el sistema entre en suspensión o apague la pantalla mientras se ejecuta la aplicación.
y
Las aplicaciones multimedia, como los reproductores de video y las aplicaciones de presentación, deben usar ES_DISPLAY_REQUIRED cuando muestran video durante largos períodos de tiempo sin la intervención del usuario.
No es una mala idea, cualquier reproductor decente lo hace ... Busque la función SystemParametersInfo(SPI_SETSCREENSAVEACTIVE ...)
en la API de Win32, debería funcionar.