2009-08-06 27 views
5

¿Hay un comando/API en OS X para poner el monitor en modo de suspensión?Command to Sleep Pantalla OSX

Por modo de suspensión, me refiero a matar completamente la salida del monitor. Sé que en la configuración de energía uno puede configurar esto pero está basado en el tiempo.

Respuesta

16

Esto se puede hacer con una API semi-indocumentada.

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

Banderas del CCG: -framework CoreFoundation -framework IOKIT

IOKit Documentation

+0

, la versión compilada se puede encontrar aquí: http://www.malcolmhall.com/products/sleepdisplay/ – rogerdpack

+2

¿Puede orientar una pantalla en un sistema de múltiples pantallas? Esto parece dormir todas las pantallas. – regulus6633

+0

regulus6633: No lo creo. Esto simplemente solicita al SO que apague los monitores. Si pones uno dormido, se despertará instantáneamente cuando hagas algo por el otro. Su mejor opción sería desactivar el segundo monitor en prefs-> display. – Tarrant

8

¿Programado o como usuario?

Para este último, Control + Shift + Eject.

+0

Sí, buscando una solución programática – mikeycgto

6

Probado en OS X 10.9.5, se puede poner la pantalla a dormir con el siguiente comando:

$ pmset displaysleepnow 

Advertencia : Actualmente, hay un error (pequeña molestia, realmente) al dormir la pantalla, en OS X 10.9.5, que encontré w cuando utiliza una acción de visualización de suspensión en LaunchBar. Al llamar a este comando (acción o terminal), la última tecla presionada siempre es Devuelve, por lo que esta tecla parece "bloquearse" cuando se activa la pantalla. Probablemente nunca lo notará, pero si utiliza algún tipo de tecla doble modificadora para invocar LaunchBar u otra aplicación (en mi caso, Comando doble), esta combinación de teclas no funcionará hasta que presione Vuelva a para "libérelo", después de despertar la pantalla.