Puedes usar WinAPI call SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)
donde HWND_BROADCAST = 0xFFFF
, WM_SYSCOMMAND = 0x0112
y SC_MONITORPOWER = 0xF170
. El 2
significa que la pantalla se está apagando.
Hay varias maneras de hacer la llamada:
Ejecutable separado. Puedes dispararlo a través de un script, línea de comandos, ventana de ejecución, atajo (*.lnk
), etc. Ten en cuenta que los atajos pueden ser invocados usando un atajo de teclado . El ejecutable puede ser escrito en C o C++, o vía P/Invoke en lenguajes .NET (C# o PowerShell ), o en muchos otros lenguajes que tienen una interfaz de lenguaje extranjero (por ejemplo JNI en Java).
AutoHotkey script . Para un no-programador, este camino es probablemente más simple. Hacer personalizaciones aún requiere algo de escritura. Este script apaga el monitor en Win + M:
Note el tiempo de espera antes de la llamada SendMessage
en el script AutoHotkey. Le da al usuario la oportunidad de liberar las teclas (en caso de que su liberación despierte el monitor de nuevo). No lo olvide incluso cuando haga la llamada desde un script en otro idioma.
Para más información, vea la documentación de SendMessage
función , WM_SYSCOMMAND
mensaje y AutoHotkey SendMessage
. Puede ser interesante que desde Windows 8, usar el mismo método para activar el monitor no funcione, pero hay una solución alternativa.