Você pode usar chamada WinAPI SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)
em que HWND_BROADCAST = 0xFFFF
,
WM_SYSCOMMAND = 0x0112
e SC_MONITORPOWER = 0xF170
. O 2
significa que a tela está sendo desligada.
Existem várias formas de fazer a chamada:
-
Executável separado. Você pode disparar através de um script, linha de comando, janela Executar, atalho ( *.lnk
), etc. Observe que atalhos podem ser invocados usando um atalho de teclado . O executável pode ser escrito em C ou C ++, ou via P / Invoke em linguagens .NET (C # ou PowerShell ), ou em muitas outras linguagens que possuem uma interface de idioma estrangeiro (por exemplo, JNI em Java).
-
AutoHotkey script . Para um não-programador, desta forma é provavelmente mais simples. Fazer personalizações ainda requer alguns scripts. Este script desativa o monitor no Win + M:
#m::
Sleep 1000
SendMessage, 0x112, 0xF170, 2,, Program Manager
return
Observe o tempo limite antes da chamada SendMessage
no script AutoHotkey. Dá ao usuário a chance de liberar as chaves (no caso de sua liberação acordar o monitor novamente). Não se esqueça disso mesmo ao fazer a chamada de um script em outro idioma.
Para mais informações, consulte a documentação de SendMessage
function , WM_SYSCOMMAND
message e AutoHotkey SendMessage
. Pode ser interessante que, desde que o Windows 8, usando o mesmo método para ativar o monitor , não funcione, mas há um work- ao redor.