2011-10-09 14 views
6

¿Es posible escribir un AppleScript para poner la pantalla en reposo (que bloquea la pantalla si la computadora está configurada para bloquear el modo de suspensión)? Esto se puede hacer desde el teclado mediante la introducción de ^⇧⏏ (cambio + de control + expulsión); esto deja todos los programas, etc. ejecutándose, y solo apaga la pantalla.Poner la pantalla en reposo (⇧^⏏/shift + control + expulsar) en AppleScript

+0

Quizás pueda recordarles a todos lo que hace esa pulsación de tecla? –

+1

¿Has visto la respuesta del 8 de junio? Probé, funciona bien. – Arjan

Respuesta

3

Editar 2015-08-23: Esto es posible (desde el shell) a partir de OS X 10.9! Go see user3064009's answer for the update :-)


No hay una buena manera de hacerlo; hay a SuperUser question sobre esto mismo. Dependiendo de por qué quieres esto, sin embargo, hay una solución que conozco: activar el protector de pantalla. (Esto es lo que sugieren en SuperUser). Puede hacerlo en AppleScript con launch application id "com.apple.ScreenSaver.Engine", o desde la línea de comandos ejecutando la aplicación /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine. No sé si esto es técnicamente documentado en cualquier lugar, pero ahora ha funcionado para varias iteraciones del sistema operativo. Es posible que no haga exactamente lo que desea; el protector de pantalla puede, por ejemplo, ser colorido, lo que no es útil si desea una pantalla en negro, pero será lo mismo, ya que bloquea la pantalla si tiene ese conjunto. arriba.

Para un buen catálogo de otras soluciones, echa un vistazo a this MacScripter thread: se documenta que

  • No hay forma de secuencias de comandos para hacer esto.
  • No se puede decir AppleScript a key code EJECT, ya que no hay tal código de tecla.
  • Puede usar pmset para decirle a la pantalla que se vaya a dormir en un minuto, pero luego debe esperar.
  • Hay una forma IOKit no documentada de hacer esto; hay a mailing list post explicando cómo.
+0

¿Sigue siendo así? ¿No hay forma de poner la pantalla en modo programado para dormir en 2013? –

+0

@ Ze'ev: No he estado buscando, pero no sé de ninguna, y una búsqueda rápida en Google no apareció nada. La aplicación a la que se vinculó parece utilizar el método IOKit no documentado que mencioné anteriormente, por lo que es bueno que alguien lo haya empaquetado. –

1

No he encontrado una manera fácil de hacerlo programáticamente, pero sí encontré una aplicación gratuita muy pequeña que pone la pantalla a dormir inmediatamente, llamada "SleepDisplay". (Hay otra aplicación del mismo nombre que no funcionó para mí.)

lo que sólo puede

tell application "SleepDisplay" to activate 

Enlace: http://www.macupdate.com/app/mac/26234/sleep-display

+0

Si bien esto puede responder a la pregunta, [sería preferible] (http://meta.stackexchange.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. – Taryn

+0

Trabajo impresionante, amigo. ¡Encontraste y respondiste aquí en solo 8 minutos! : D – cregox

8

puede utilizar: tell application "Finder" to sleep

O uso bettertouchtool. Es una aplicación pequeña que puede usar funciones nativas además de applescript.

+0

'decirle a la aplicación" Finder "que duerma' funciona perfectamente en un AppleScript usando Automator, y el comportamiento parece ser exactamente como lo hacen las combinaciones de teclas originales. – Roel

+1

Esto es bueno saberlo, pero ** apaga todo el dispositivo **, no solo la pantalla (s). –

15

Hace tiempo que quiero hacer esto. Acabo de descubrir cómo en las páginas man. Puede usar el siguiente comando para lograr un sueño de visualización instantánea. (Lo he probado en OS X 10.10.)

pmset displaysleepnow 

(sin privilegios de root/sudo requeridos)

No estoy seguro de si esto funciona para 10.9.4 todavía, pero por todos los medios darle ¡un disparo!

+1

Funciona según lo anunciado en 10.9.5 – Claude

+0

Funciona el 10.11.6 –

2
do shell script "pmset displaysleepnow" 
Cuestiones relacionadas