2009-08-06 6 views
5

Gibt es unter OS X einen Befehl/eine API, um den Monitor in den Energiesparmodus zu versetzen?Befehl zum Energiesparmodus OSX

Mit Schlaf-Modus, ich meine, total die Ausgabe auf den Monitor zu töten. Ich weiß in den Stromeinstellungen kann man das konfigurieren aber das ist zeitbasiert.

Antwort

16

Dies kann mit einer halb-undokumentierten API erfolgen.

#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; 
} 

GCC Flags: -framework CoreFoundation -framework IOKIT

IOKit Documentation

+0

kompilierte Version finden Sie hier: http://www.malcolmhall.com/products/sleepdisplay/ – rogerdpack

+2

Können Sie ein Display in einem Multi-Display-System? Dies scheint alle Anzeigen zu schlafen. – regulus6633

+0

regulus6633: Ich glaube nicht. Dies fordert das Betriebssystem einfach auf, die Monitore in den Ruhezustand zu versetzen. Wenn man schläft, erwacht es sofort, wenn man etwas auf der anderen macht. Am besten wäre es, den zweiten Monitor in Prefs-> display zu deaktivieren. – Tarrant

8

Programmatisch oder als Benutzer?

Für die letzteren, Control + Shift + Eject.

+0

Yeah auf der Suche nach einer programmatischen Lösung – mikeycgto

6

in OS X 10.9.5 getestet, können Sie die Anzeige setzen mit dem folgenden Befehl schlafen:

$ pmset displaysleepnow 

Caveat : Momentan gibt es einen Bug (kleine Belästigung, wirklich) beim Einschlafen des Displays, in OS X 10.9.5, welches ich gefunden habe Verwenden Sie eine Schlafanzeigeaktion in LaunchBar. Wenn Sie diesen Befehl (Aktion oder Terminal) aufrufen, ist die zuletzt gedrückte Taste immer Return, so dass diese Taste beim Aufwachen des Displays "stecken bleibt". Sie werden es wahrscheinlich nie bemerken, aber wenn Sie eine Art Doppel-Modifier-Taste verwenden, um LaunchBar oder eine andere App aufzurufen (in meinem Fall Double Cmd), wird diese Tastenkombination nicht funktionieren, bis Sie Return erneut drücken "loslassen", nachdem das Display geweckt wurde.

Verwandte Themen