Wygaszanie ekranu
• tech • 315 słów • 2 minuty czytania
W starym kochanym laptopie był fajny i przydatny klawisz funkcyjny pod F7 służący do wyłączania/wygaszania ekranu LCD. W aktualnym sprzęcie rozkład klawiszy funkcyjnych trochę się zmienił i strasznie brakuje mi owej funkcji. Zamiast tego pojawił się skrót do menadżera kart bezprzewodowych, włączania/wyłączania Wi-Fi i Bluetooth.
Opisywana funkcjonalność bodajże sprzętowo wygaszała LCD, a po ponownym naciśnięciu zapalała. Namiastkę tej brakującej opcji można w bardzo prosty sposób rozwiązać programowo, tworząc np. skrót na pulpicie do szybkiego wyłączenia monitora.
Posiadacze systemu spod znaku pingwina znajdą co nieco informacji w notce Skrót wygaszający ekran. Właścicielom systemu ze stajni z Redmond może pomóc prosta aplikacja napisana w C# - Turn Off LCD, więcej informacji w notce Turn off your notebook LCD with one-click na blogu autora lub programik Turn Monitor Off.
Dla bardziej obeznanych w sztuce programowania polecam garść praktycznych informacji o dostępnych w WinAPI funkcjach dotyczących sterowania monitorem zamieszczonych w artykule Turn on/off monitor na CodeProject. Do tego artykułu załączono także skompilowaną, prostą, przykładową aplikację, którą można wykorzystać. Jest tylko 10 razy lżejsza od tej wersji w C# ;) Jej działanie jest bardzo proste, sprowadza się do wysłania odpowiedniego komunikatu.
W prezentowanych przykładach, komunikat zostaje wysłany do wszystkich top-levelowych okien, nie co lepszym rozwiązaniem byłoby pobranie uchwytu pulpitu za pomocą GetDesktopWindow i wysłanie ich właśnie do niego. Raymond Chen na swoim blogu napisał w notce Fumbling around in the dark and stumbling across the wrong solution dlaczego wysyłanie wiadomości broadcastowych jest złym pomysłem.
Swoją drogą można ciekawe informacje znaleźć na The Old New Thing ;)
Wszystkie te rozwiązania (nie wiem jak linuksowe) mają małą wadę. Mianowicie ekran zostaje wygaszony do czasu pierwszej aktywności usera, a w niektórych wypadkach, np. po podpięciu skrótu klawiszowego do aplikacji, chciałoby się włączać i wyłączać ekran tylko za pomocą tego “czerwonego” klawisza, niezależnie od innego wciśniętego klawisza czy poruszenia myszką. Może gdybym miał czas i znalazł jakieś sensowne rozwiązanie to coś bym zakodował ;)
Komentarze (2)
po odpaleniu programiku i wyslaniu komunikatu o wygaszeniu przechwytuj wszystkie wcisniete klawisze i jesli trafisz na ten co chcesz to wysylasz msg o wzbudzeniu :>
To chyba nie jest takie proste. System sam włącza ekran, gdy odbierze jakieś zdarzenie z klawiatury lub myszki. I chyba nic nie poradzę, ale nie przyglądałem się temu problemowi, może jednak coś się wymyśli ;)