2009-08-06 33 views
5

Czy jest polecenie/interfejs API w OS X, aby przełączyć monitor w tryb uśpienia?Polecenie uśpienia wyświetlacza OSX

W trybie uśpienia mam na myśli całkowite zabicie wyjścia na monitor. Wiem, że w ustawieniach mocy można to skonfigurować, ale jest to oparte na czasie.

Odpowiedz

16

Można to zrobić przy pomocy api nieudokumentowanego.

#include <CoreFoundation/CoreFoundation.h> 
#include <IOKit/IOKitLib.h> 

/* Returns 0 on success and 1 on failure. */ 
int display_sleep(void) 
{ 
    io_registry_entry_t reg = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler"); 
    if (reg) { 
       IORegistryEntrySetCFProperty(reg, CFSTR("IORequestIdle"), kCFBooleanTrue); 
       IOObjectRelease(reg); 
     } else { 
       return 1; 
     } 
     return 0; 
} 

Flagi GCC: -framework CoreFoundation -framework IOKIT

IOKit Documentation

+0

wersji skompilowanej można znaleźć tutaj: http://www.malcolmhall.com/products/sleepdisplay/ – rogerdpack

+2

można kierować jeden monitor w systemie Multi-display? To wydaje się spać wszystkie wyświetlacze. – regulus6633

+0

regulus6633: Nie sądzę. Jest to po prostu poproszenie systemu operacyjnego o uśpienie monitorów. Jeśli zasnę jedną, to obudzisz się natychmiast, gdy zrobisz coś po drugiej. Najlepiej byłoby wyłączyć drugi monitor w prefs-> display. – Tarrant

8

Programowo lub jako użytkownik?

Dla tego ostatniego: Control + Shift + Eject.

+0

Tak szukam programowe rozwiązanie – mikeycgto

6

testowane w OS X 10.9.5, które można umieścić wyświetlacz do snu za pomocą następującego polecenia:

$ pmset displaysleepnow 

Caveat : Obecnie, w systemie OS X 10.9.5 występuje błąd (mała irytacja, naprawdę), który znalazłem w za pomocą akcji wyświetlania uśpienia w LaunchBar. Przez wywołanie tego polecenia (akcja lub terminal), ostatnim naciśniętym klawiszem jest zawsze Return, więc ten klucz wydaje się być "zablokowany" po obudzeniu wyświetlacza. Prawdopodobnie nigdy go nie zauważysz, ale jeśli użyjesz jakiegoś klawisza podwójnego modyfikatora, aby wywołać LaunchBar, lub innej aplikacji (w moim przypadku Double Cmd), ta kombinacja klawiszy nie zadziała, dopóki ponownie nie naciśniesz Powróć "zwolnij" go po obudzeniu wyświetlacza.

Powiązane problemy