我在 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
键盘大师可以配置为在应用程序关闭时执行脚本。