AppleScript para fazer logoff do usuário do Mac após fechar um aplicativo?

2

Configurei uma conta de usuário local em um iMac (Lion) para iniciar imediatamente o Firefox em uma página específica após o login - a página contém uma pesquisa a ser preenchida pelo usuário. Isso funciona bem.

O que quero fazer em seguida, mas não consigo descobrir como é fazer logoff do usuário depois que ele concluir a pesquisa e sair do Firefox.

Eu não quero que eles tenham que clicar no ícone da Apple na parte superior e depois fazer logout - quando eles terminarem a pesquisa e saírem do Firefox, eu gostaria que um script fosse executado, que os registrasse e levasse o Mac de volta para a tela de login do próximo usuário.

É possível associar um script e executá-lo ao sair de um aplicativo?

    
por JDF 03.08.2012 / 04:17

2 respostas

0

Salve uma lista de propriedades assim como ~/Library/LaunchAgents/com.superuser.457047.plist (ou o que quer que você altere o rótulo) e carregue-o com launchctl load ~/Library/LaunchAgents/com.superuser.457047.plist ou efetuando logout e voltando.

<?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>

Provavelmente, há alguns casos em que clicar no último item de menu não funcionaria. keystroke "q" using {option down, shift down, command down} não funcionaria se o usuário estivesse controlando.

tell application "System Events" to log out mostraria um diálogo de confirmação.

/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend não mostra um diálogo de confirmação, mas mantém o usuário logado e mostra a tela de troca rápida de usuário.

    
por 23.08.2012 / 21:35
0

O Keyboard Maestro pode ser configurado para executar scripts quando um aplicativo é fechado.

    
por 19.01.2013 / 20:47