AppleScript para cerrar sesión en el usuario de Mac después de cerrar una aplicación?


2

He configurado una cuenta de usuario local en un iMac (Lion) para iniciar inmediatamente Firefox en una página específica después de iniciar sesión: la página contiene una encuesta que debe completar el usuario. Esto funciona bien

Lo que quiero hacer a continuación, pero parece que no puedo entender cómo cerrar la sesión automáticamente del usuario después de completar la encuesta y salir de Firefox.

No quiero que tengan que hacer clic en el ícono de Apple en la parte superior y luego cerrar sesión; cuando terminen la encuesta y salgan de Firefox, me gustaría que se ejecute un script que los desconecte y lleve la Mac nuevamente a la pantalla de inicio de sesión para el próximo usuario

¿Es posible asociar un script y ejecutarlo al salir de una aplicación?

Respuestas:


0

Guarde una lista de propiedades como esta como ~/Library/LaunchAgents/com.superuser.457047.plist(o lo que sea que cambie la etiqueta), y cárguela con launchctl load ~/Library/LaunchAgents/com.superuser.457047.plisto al cerrar sesión y volver a iniciarla.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.superuser.457047</string>
    <key>ProgramArguments</key>
    <array>     
        <string>osascript</string>
        <string>-e</string>
        <string>tell application "System Events" to if (not (exists process "firefox")) or number of windows of process "firefox" is 0 then tell process "Finder" to click last menu item of menu 1 of menu bar 1</string>
    </array>
    <key>StartInterval</key>
    <integer>5</integer> <!-- run every 5 seconds -->
</dict>
</plist>

Probablemente hay algunos casos en los que no funcionaría hacer clic en el último elemento del menú. keystroke "q" using {option down, shift down, command down}no funcionaría si el usuario tuviera el control.

tell application "System Events" to log out mostraría un diálogo de confirmación.

/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend no muestra un diálogo de confirmación pero mantiene al usuario conectado y muestra la pantalla de cambio rápido de usuario.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.