[PL] if (is_computer_on()!=1) { lets_play_sideshow(); }
Uśmiałem się trochę gdy zajrzałem na blog jednego z moich kolegów z Finlandii:
https://slinky.imukuppi.org/2008/03/28/if-a-kernel-call-is-made-but-nobody-is-listening/
Jego blog naogół jest średnio Microsoftowy, wręcz przeciwnie. Jani to dla mnie jedna z tych pomocnych osób, dzięki której o konkurencji mam nadzieję nie gadam głupot bez wiedzy ;)
W każdym razie jak zajrzycie na powyższego bloga to zauważycie, że Jani w bibliotekach do wydaje mi się już martwego systemu BeOS (no chyba, że komuś się jeszcze chce bawić w Haiku) odkrył ciekawą funkcję w API. Funkcja is_computer_on(), która sprawdza czy komputer jest włączony.
Uśmiałem się, bo w sumie jak ma nie zwrócić 1 (true) gdy aplikacja, która wykona tą funkcję raczej nie ma prawa zostać wykonana przy wyłączonym komputerze. No chyba, że znajdę ochotnika, który byłby mi w stanie sprawdzić i udowodnić, że przetestował to na wyłączonej maszynie :)
Wydaje się do bólu zabawne, ale w sumie to przełożyłem sobie szybko taką funkcję na potencjalne (i może już mniej absurdalne) potrzeby Windows Vista.
W końcu pod tym systemem mamy wsparcie do Sideshow - małego okienka, które producent komputera może umieścić np. na zewnętrznej stronie klapy laptopa i pozwolić nam na uruchomienie ograniczonej funkcjonalności systemu, gdy on jest wyłączony czy uśpiony.
{przykład wykorzystania Sideshow}
W takiej sytuacji doszedłem do wniosku, że sprawdzenie, czy mój komputer jest włączony czy też może nie (np. jest zahibernowany), nawet mogło by mieć merytoryczny sens :)
Z ciekawości aż sprawdziłem czy takiego cuda jak is_computer_on() nie ma pod Windows.
Najbliżej jak mi się udało to w funkcjach WinAPI związanych z Power Management znalazłem funkcję: GetDevicePowerState, aczkolwiek nie mam urządzenia z sideshow, na którym mógłbym w praktyce przetestować taki scenariusz.
Tak czy siak uśmiałem się po pachy i raczej wciąż traktuję to odkrycie w kategoriach dobrego żartu :]
Technorati Tagi: Polish posts,babbling,Windows Vista,geeks
Comments
Anonymous
April 07, 2008
To nie jedyna perełka w kernel kit: double is_computer_on_fire(); Returns the temperature of the motherboard if the computer is currently on fire. Smoldering doesn't count. If the computer isn't on fire, the function returns some other value. Źródło: http://www.haiku-os.org/legacy-docs/bebook/TheKernelKit_SystemInfo.htmlAnonymous
April 07, 2008
Takiej funkcji w Windows Vista bym nie chciał mieć. Bałbym się jeszcze, że ktoś by odkrył ukrytą funkcję kernela set_computer_on_fire(); Po takim odkryciu przygody z wirusem Chernobil, który palił płyty główne wróciły by jak bumerang :)