Możesz użyć WinAPI call SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)
gdzie HWND_BROADCAST = 0xFFFF
, WM_SYSCOMMAND = 0x0112
i SC_MONITORPOWER = 0xF170
. 2
oznacza, że wyświetlacz jest wyłączony.
Istnieje kilka sposobów wykonania połączenia:
Rozdzielny wykonywalny. Możesz go uruchomić poprzez skrypt, linię poleceń, okno uruchomienia, skrót (*.lnk
), itp. Zauważ, że skróty można wywołać za pomocą skrótu klawiaturowego . Program wykonywalny może być napisany w języku C lub C++, lub poprzez P/Invoke w językach .NET (C# lub PowerShell ), lub w wielu innych językach, które mają interfejs obcojęzyczny (np. JNI w Javie).
AutoHotkey skrypt . Dla nie-programisty, ten sposób jest prawdopodobnie prostszy. Wykonywanie customizacji wymaga jeszcze trochę skryptu. Ten skrypt wyłącza monitor na Win + M:
Zwróć uwagę na limit czasu przed wywołaniem SendMessage
w skrypcie AutoHotkey. Daje on użytkownikowi możliwość zwolnienia klawiszy (w przypadku, gdy ich zwolnienie obudziłoby monitor ponownie). Nie zapomnij o tym nawet podczas wywoływania ze skryptu w innym języku.
Więcej informacji znajdziesz w dokumentacji funkcja SendMessage
, komunikat WM_SYSCOMMAND
oraz AutoHotkey SendMessage
. Może być interesujące, że ponieważ Windows 8, używając tej samej metody do włączanie monitora nie działa, ale jest work-around.