关闭应用程序后,AppleScript 会注销 Mac 用户吗?

关闭应用程序后,AppleScript 会注销 Mac 用户吗?

我在 iMac (Lion) 上配置了一个本地用户帐户,登录后立即启动 Firefox 到特定页面 - 该页面包含一项需要用户完成的调查。这很好用。

我接下来想做的是,但似乎无法弄清楚如何在用户完成调查并退出 Firefox 后自动注销用户。

我不希望他们必须单击顶部的 Apple 图标然后注销 - 当他们完成调查并退出 Firefox 时,我希望执行一个脚本将他们注销并将 Mac 返回到下一个用户的登录屏幕。

是否可以关联脚本并在退出应用程序时执行它?

答案1

将这样的属性列表另存为~/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不显示确认对话框但保持用户登录状态并显示快速用户切换屏幕。

答案2

键盘大师可以配置为在应用程序关闭时执行脚本。

相关内容