2

Я настроил локальную учетную запись пользователя в iMac (Lion) для немедленного запуска Firefox на определенной странице после входа в систему - страница содержит опрос, который должен выполнить пользователь. Это отлично работает.

Что я хочу сделать дальше, но не могу понять, как автоматически отключить пользователя после того, как он завершит опрос и выйдет из Firefox.

Я не хочу, чтобы им приходилось щелкать значок Apple вверху и затем выходить из системы - когда они завершат опрос и выйдут из Firefox, я бы хотел, чтобы выполнялся скрипт, который выводит их из системы и возвращает Mac обратно на экран входа в систему. для следующего пользователя.

Можно ли связать сценарий и выполнить его при выходе из приложения?

2 ответа2

0

Клавиатура Maestro может быть настроена на выполнение сценариев при закрытии приложения.

0

Сохраните список свойств, такой как ~/Library/LaunchAgents/com.superuser.457047.plist (или любой другой, на который вы меняете метку), и загрузите его с помощью launchctl load ~/Library/LaunchAgents/com.superuser.457047.plist или выйдя и вернувшись.

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

Вероятно, в некоторых случаях нажатие на последний пункт меню не сработает. keystroke "q" using {option down, shift down, command down} не будет работать, если пользователь удерживает управление.

tell application "System Events" to log out системы, появится диалоговое окно подтверждения.

/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend не отображает диалоговое окно подтверждения, но сохраняет пользователя в системе и отображает экран быстрого переключения пользователей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .