¿Cómo puedo verificar programáticamente en Windows 7 y XP si la 'administración de energía de Windows' ha apagado la pantalla? (Si puedo recibir un evento, eso sería aún mejor.)Compruebe si la pantalla está desactivada por la administración de energía de Windows
Respuesta
¡Creo que puede usar ServiceController! how to turn windows service on if its off. control it from webapplication
¿qué tiene que ver un servicio con la pantalla? –
No creo que se pueda hacer para XP. En Windows 7 hay todo tipo de regalos relacionados con la administración de energía. El Windows API Code Pack es un conjunto de contenedores administrados que son simples para llamar desde C# o VB y que mapean paradigmas de Windows (como receptores de eventos, mensajes de Windows y punteros a funciones) en .NET (como delegados y eventos). que viene con el paquete de código, aquí hay un código que te pueden gustar:
using Microsoft.WindowsAPICodePack.ApplicationServices;
// . . .
PowerManager.IsMonitorOnChanged += new EventHandler(MonitorOnChanged);
// . . .
void MonitorOnChanged(object sender, EventArgs e)
{
settings.MonitorOn = PowerManager.IsMonitorOn;
AddEventMessage(string.Format("Monitor status changed (new status: {0})", PowerManager.IsMonitorOn ? "On" : "Off"));
}
Editar:
enlaces al código de paquete de API de Windows: Windows API Code Pack: Where is it?
Si quieres lo usa tal como se menciona en este post comprueba esto: https://stackoverflow.com/a/27709672/846232
Gracias amigo. Añadiré un enlace para descargar esa biblioteca :) – sczdavos
Funciona como un amuleto, combinado con la comprobación del protector de pantalla de http://stackoverflow.com/a/9858981/1025177 (change "(isRunning)" to "(isRunning || ! PowerManager.IsMonitorOn) ") se pueden cubrir ambos tipos de salvapantallas: D – BloodyRain2k
Su aplicación recibirá un mensaje WM_SYSCOMMAND con SC_MONITORPOWER en wParam (asegúrese de hacerlo primero y wParam con 0xfff0). Enviará un mensaje similar cuando se active el protector de pantalla (SC_SCREENSAVE). Si su objetivo es evitar que la pantalla se apague, puede devolver 0 en estos, aunque eso no funciona cuando el usuario tiene una contraseña establecida.
Tampoco funciona si la ventana de su aplicación no es la ventana activa. – Dunk
- 1. OSX: compruebe si la pantalla está bloqueada
- 2. Windows: API de administración de energía de la CPU
- 3. ¿Cómo detectar si la pantalla está activada o desactivada si el nivel de API es 4?
- 4. compruebe si la 1ª opción está seleccionada
- 5. Compruebe si la cadena está vacía
- 6. Compruebe si la consola está presente
- 7. Extensión de Firefox: compruebe si la ventana está minimizada
- 8. Mi protector de pantalla está suspendiendo la suspensión de la pantalla, pero no lo quiero
- 9. Javascript La función Date.UTC() está desactivada por un mes?
- 10. ¿La compilación condicional está desactivada en Razor?
- 11. Compruebe si ningún usuario está actualmente conectado a Windows
- 12. Smarty: compruebe si la variable está en la matriz
- 13. Compruebe de forma programática si el monitor está apagado
- 14. compruebe si la variable de entorno ya está configurada
- 15. Linux: compruebe si la cola de mensajes está vacía
- 16. Compruebe si la base de datos está vacía
- 17. Compruebe si "exec" está deshabilitado
- 18. compruebe si NSNumber está vacío
- 19. Delphi: compruebe si la memoria se está liberando "a tiempo"
- 20. Compruebe si la aplicación está disponible en Android Market
- 21. Compruebe si la casilla está marcada o no - ASP.NET
- 22. Compruebe si la ventana está perdiendo el foco
- 23. Compruebe si la dirección IP está en el rango privado
- 24. compruebe si la conexión a Internet está disponible con C#
- 25. Compruebe si la matriz está vacía o nula
- 26. Mensaje desagradable de Chrome cuando la función Autocompletar está desactivada
- 27. Python dentro de la pantalla GNU eventualmente queda inactivo si la pantalla está destrabada
- 28. Compruebe si el archivo ya está abierto
- 29. AS3: compruebe si un diccionario está vacío
- 30. compruebe si la instancia de un tipo
¿por qué quieres saber? ¿Entonces puedes volver a encenderlo? Hay una forma de decirle a Windows que "cuando se ejecuta esta aplicación no recibe mucha acción del teclado/mouse, pero eso no significa que estemos inactivos, así que no pongas en blanco la pantalla" (por ejemplo, para un reproductor de video). Si ese es usted, prevenir el blanking es mejor que ser notificado, ¿no? –
similar: http://stackoverflow.com/questions/328490/monitoring-a-displays-state-in-python –
Puede consultar IMSVidDevice: msdn.microsoft.com/en-us/library/dd694519(VS.85) .aspx –