python - toplevel - tkinter tutorial
¿Monitorea un estado de pantallas en Python? (1)
Parece que, cuando Windows quiere iniciar el protector de pantalla o apagar el monitor, enviará un WM_SYSCOMMAND
a la ventana superior con un wParam
de SC_SCREENSAVE
(para iniciar el protector de pantalla) o un wParam
de SC_MONITORPOWER
y un lParam
de 1 o 2 (para apagar el monitor). Este mensaje se pasará a DefWindowProc
, que realmente hará la acción. Por lo tanto, si su ventana resulta ser la más alta, puede interceptar estos eventos e ignorarlos (o hacer cualquier otra cosa que desee antes de pasarlos a DefWindowProc
).
En Windows Vista, parece haber una manera más intuitiva y más confiable de conocer el estado de energía del monitor. Llama a RegisterPowerSettingNotification
para indicar al sistema que envíe a su ventana un mensaje WM_POWERBROADCAST
con un wParam
de PBT_POWERSETTINGCHANGE
y un lParam
apunta a una estructura POWERBROADCAST_SETTING
.
No puedo probar ninguno de ellos ya que actualmente no tengo ninguna computadora con Windows cerca. Espero, sin embargo, que te dirijan en la dirección correcta.
Referencias
¿Cómo puedo saber cuándo Windows está cambiando el estado de energía de un monitor?