Usando AppleScript para bloquear la pantalla

Necesito un applescript que bloquee mi Mac de la misma manera que lo haría presionando shift++ ctrl. ejectIntenté dos enfoques diferentes, pero ambos fallaron. El primero fue buscar en Internet un script, que falló. Solo hay soluciones con protector de pantalla u otras aplicaciones, que no quiero. Solo quiero usar lo que describí. El segundo fue decirle a applescript que presione las tres teclas que no funcionaron. Si alguien pudiera decirme cómo bloquear mi Mac o cómo decirle a Applescript que presione tres teclas, estaría muy feliz, porque me estoy frustrando un poco.

Respuestas (6)

Obtener información de esta respuesta y esta respuesta:

  1. Presiona el botón Spotlight en la parte superior derecha de la pantalla ( Cmd+ Space)
  2. Buscar Keychain Access_ Abre esto
  3. Preferencias abiertas ( Cmd+ ,(coma))
  4. ControlarShow Status in Menu Bar
  5. Presiona el botón Spotlight en la parte superior derecha de la pantalla ( Cmd+ Space)
  6. Buscar Automator_ Seleccione esto
  7. Crear nuevoService
  8. Busque Run Applescriptjunto a los botones Actionsy . VariablesHaga doble clic en este
  9. Asegúrese de que las casillas de verificación esténService receives no input in any application
  10. Pegue este Applescript:

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 of menu bar 1 where description is "Keychain menu extra")
        click
        click menu item "Lock Screen" of menu 1
    end tell
end tell

Guarde este Automator como algo así Lock screen(nota: ¡el código en GIF es diferente!)

ingrese la descripción de la imagen aquí


Para hacer un atajo:

  1. Presione el botón de Apple en la parte superior izquierda de la pantalla
  2. Hacer clicSystem Preferences
  3. Hacer clicKeyboard
  4. Haga clic Keyboard Shortcutsen la pestaña
  5. Hacer clicServices
  6. Encuentra el nombre del servicio que acabas de crear
  7. Haga clic en el espacio en blanco a la derecha
  8. Escriba su atajo en

¡Usa tu atajo en cualquier aplicación!

ingrese la descripción de la imagen aquí


O...:

  1. Podrías comprar a Alfred
  2. Podrías usar Cmd+ Shift+Eject
Solo para tener en cuenta: alfred y cmd+shift+eject matan la red cuando suspende la máquina. Esto es muy útil porque solo bloquea la pantalla.
Cuando ejecuto el script, abre el menú del llavero y se atasca. Cuando cierro el menú, me sale este error:System Events got an error: Can’t get menu 1 of menu bar item 2 of menu bar 1 of application process "SystemUIServer". Invalid index.
@AgentME, ¿está seguro de haber realizado los pasos 1 a 4? También actualicé el código, así que inténtalo después de hacer los pasos 1-4 :)
@ᔕᖺᘎᕊ Recibo el mismo error que el anterior, "Índice no válido"

Encontré esto en otra respuesta , pero un AppleScript que simplemente contiene lo siguiente funciona para mí.

 tell application "Finder" to sleep
Combiné esta respuesta con la respuesta aceptada y funcionó muy bien. Tal vez la respuesta aceptada podría incorporar esto.
Al contrario del código en la respuesta aceptada, el código de esta respuesta no requiere configurar privilegios para todas las aplicaciones en las que desea usar su acceso directo y tampoco requiere que el estado del llavero esté visible en la barra de menú.
Depende de las preferencias, el tiempo que dure el sueño realmente se bloquea. Desafortunadamente para mí, esto no funciona porque nuestra organización obliga a que la configuración se bloquee 1 minuto después de dormir.

Tengo un trazador de líneas simple para esto. Utiliza eventos del sistema para enviar la combinación de teclas predeterminada para el comando Bloquear pantalla y funciona en todas las versiones de OSX desde High Sierra (10.13) en adelante. ¡Incluso Mojave! Aunque solicitará permisos de seguridad adicionales para la aplicación, en las versiones más nuevas de OSX

tell application "System Events" to keystroke "q" using {control down, command down}
Esta pregunta se hizo el 21 de junio de 2014 y su respuesta no se aplica a las versiones de OS X que se ejecutan en ese momento. Edite su respuesta para incluir el contexto relevante de en qué versiones de macOS funciona.
Funciona en todas las versiones de OSX. incluyendo Mojave
No es un método abreviado de teclado predeterminado en todas las versiones de OS X y, de hecho, no funciona en ninguna versión de OS X y solo se introdujo en una de las versiones de macOS.
Mire, solo estoy tratando de ayudar y proporcionar una respuesta que funcionó para mí. ¿No te gusta? Bórralo. no podría importarme menos
Funciona de maravilla (al menos lo hace para mí en Mojave). No estoy seguro de por qué este otro comentarista dice que no funciona. Es una solución simple y limpia. Gracias por compartirlo.

Uso una macro para aceptar el atajo Comando-L. Habiendo cambiado recientemente de Windows a Mac, una manera fácil de bloquear mi pantalla fue importante. En Windows, uno simplemente necesita presionar la tecla de Windows y L, y listo, bloqueado.

Usando Keyboard Maestro , creé una macro para el atajo Comando-L, siendo esencialmente lo mismo (comparando la tecla Comando con la tecla de Windows). El acceso directo activa la función "Ventana de inicio de sesión", que bloquea la pantalla. Fácil, al menos para mí.

(En Keyboard Maestro, la función "Ventana de inicio de sesión" se encuentra en Acciones > Control del sistema).

macOS 10.11, El Capitan, parece haber roto la respuesta de ᔕᖺᘎᕊ usando AppleScripts, pero descubrí que si instalé Lock Screen e hice que mi Automator Service abriera su "Paquete de pantalla de bloqueo", el resto del proceso funcionó según lo previsto (siempre que llame el servicio "pantalla de bloqueo", no "pantalla de bloqueo": aparentemente, los espacios en el nombre del archivo rompen el método abreviado de teclado para muchos usuarios de macOS).

Consulte Acceso directo a la pantalla de bloqueo en Mac OS X para obtener una guía ilustrada paso a paso.

Para High Sierra (10.13), la respuesta aceptada no funciona ya que Acceso a Llaveros no tiene Check Show Status in Menu Baropción. Pero, basado en el saqueo desvergonzado de la fuente de la aplicación Lockscreen (como lo mencionó @Alice Purcell), descubrí esta ingeniosa solución de secuencias de comandos de GUI:

activate application "SystemUIServer"
tell application "System Events"
    tell process "SystemUIServer" to keystroke "q" using {command down, control down}
end tell
mejor respuesta para big sur. usé esto para hacer un botón de bloqueo en mi Stream Deck. ¡Gracias!