Vous pouvez utiliser WinAPI call SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)
où HWND_BROADCAST = 0xFFFF
, WM_SYSCOMMAND = 0x0112
et SC_MONITORPOWER = 0xF170
. Le 2
signifie que l'affichage est désactivé.
Il y a plusieurs façons d'effectuer l'appel :
Exécutable séparé. Vous pouvez le lancer par un script, une ligne de commande, une fenêtre d'exécution, un raccourci (*.lnk
), etc. Notez que les raccourcis peuvent être invoqués à l'aide d'un raccourci clavier . L'exécutable peut être écrit en C ou C++, ou via P/Invoke dans des langages .NET (C# ou PowerShell ), ou dans de nombreux autres langages ayant une interface en langue étrangère (par exemple JNI en Java).
AutoHotkey script . Pour un non-programmeur, cette méthode est probablement plus simple. La réalisation de personnalisations nécessite encore un peu de script. Ce script permet d'éteindre le moniteur sur Win + M :
Notez le délai avant l'appel de SendMessage
dans le script AutoHotkey. Il donne à l'utilisateur la possibilité de libérer les touches (au cas où leur libération réveillerait à nouveau le moniteur). Ne l'oubliez pas même si vous effectuez l'appel à partir d'un script dans une autre langue.
Pour plus d'informations, voir la documentation de SendMessage
function , WM_SYSCOMMAND
message et AutoHotkey SendMessage
. Il peut être intéressant de noter que depuis Windows 8, l'utilisation de la même méthode pour allumer le moniteur ne fonctionne pas, mais il existe une solution de contournement.