È possibile utilizzare WinAPI call SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)
dove HWND_BROADCAST = 0xFFFF
, WM_SYSCOMMAND = 0x0112
e SC_MONITORPOWER = 0xF170
. Il 2
significa che il display viene spento.
Ci sono diversi modi per effettuare la chiamata:
Eseguibile separato. Si può sparare attraverso uno script, linea di comando, finestra di esecuzione, scorciatoia (*.lnk
), ecc. Si noti che le scorciatoie possono essere richiamate usando una scorciatoia da tastiera . L'eseguibile può essere scritto in C o C+++, o tramite P/Invoke nei linguaggi .NET (C# o PowerShell ), o in molti altri linguaggi che hanno un'interfaccia in lingua straniera (ad esempio JNI in Java).
AutoHotkey script . Per un non programmatore, questo modo è probabilmente più semplice. Effettuare personalizzazioni richiede ancora un po’ di scripting. Questo script spegne il monitor su Win + M:
Si noti il timeout prima della chiamata SendMessage
nello script AutoHotkey. Esso dà all'utente la possibilità di rilasciare i tasti (nel caso in cui il loro rilascio risvegliasse di nuovo il monitor). Non dimenticarlo anche quando si effettua la chiamata da uno script in un'altra lingua.
Per maggiori informazioni, vedere la documentazione di SendMessage
function , WM_SYSCOMMAND
message e AutoHotkey SendMessage
. Potrebbe essere interessante che dal momento che Windows 8, usando lo stesso metodo per accendere il monitor , non funziona, ma c'è una soluzione.