2 votos

¿Cómo puedo ejecutar automáticamente un AppleScript al apagar o cerrar la sesión?

Estoy más acostumbrado a los manejadores de eventos estilo Javascript,

pero ¿hay algo similar en applescript que escuche eventos del sistema como el cierre de sesión o el apagado para ejecutar código

o ¿hay alguna forma de hacer que un applescript se ejecute al apagar o cerrar la sesión?

Sé de scripttemporizador pero prefiero tener algo gratis.

Lo único que hace mi script es silenciar el volumen para el siguiente arranque.

2voto

adayzdone Puntos 1258

Para ello se pueden utilizar agentes de lanzamiento. Véase este tutorial sobre MacScipter . Si no está familiarizado con el proceso, Lingon ofrece una interfaz sencilla para crear el archivo. Aquí hay un ejemplo para lanzar un script llamado ZuluDeltaNiner.scpt al iniciar sesión.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Label</key>
   <string>com.paul.applescript_Launchd</string>
   <key>ProgramArguments</key>
   <array>
       <string>osascript</string>
       <string>/ZuluDeltaNiner.scpt</string>
   </array>
   <key>QueueDirectories</key>
   <array/>
   <key>RunAtLoad</key>
   <true/>
   <key>StartOnMount</key>
   <false/>
   <key>WatchPaths</key>
   <array/>
</dict>
</plist>

0voto

Los ganchos de cierre de sesión eran obsoleto en 10.4 pero siguen funcionando en 10.8.

echo $'#!/usr/bin/osascript\n\nset volume with output muted' > ~/.logouthook
chmod +x ~/.logouthook
sudo defaults write com.apple.loginwindow LogoutHook ~/.logouthook

sudo defaults write modifica los archivos en /var/root/Library/Preferences/ . El programa no puede insertarse como argumento directamente.

Atrapar la señal de salida sólo parece funcionar cuando se cierra la sesión y no cuando se apaga.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X