我编写了AppleScript并希望将其转换为osascript,以便我可以使用launchd在启动时运行它。有什么方法可以将其转换为osascript或者我必须将整个脚本重写为osascript吗?如果无法完成,至少有一种方法可以在终端中以osascript的身份运行它吗?谢谢!
on idle
tell application "System Events" to ¬
if exists process "Launchpad" then run script
tell application "Launchpad"
delay 0
tell application "System Events" to keystroke "b" using {control down, option down, command down}
delay 0
tell application "System Events" to keystroke "b" using {control down, option down, command down}
delay 0
tell application "System Events" to keystroke "b" using {control down, option down, command down}
delay 0
end tell
end idle
答案 0 :(得分:1)
如果您只需要每秒运行一次或不太频繁,可以将其保存为普通脚本:
tell application "System Events"
if not (exists process "Launchpad") then return
repeat 3 times
keystroke "b" using {control down, option down, command down}
end repeat
end tell
并使用launchd:
重复运行脚本<?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.stackoverflow.11945633</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>/Users/username/Library/Scripts/script.scpt</string>
</array>
<key>StartInterval</key>
<integer>1</integer>
</dict>
</plist>
必须使用launchctl load ~/Library/LaunchAgents/com.stackoverflow.11945633.plist
手动加载属性列表。应用更改需要卸载并加载它。
默认情况下,程序在20秒后发送SIGKILL信号。您可以通过添加ExitTimeOut
密钥来覆盖超时。请参阅man launchd.plist
。
该脚本实际上不适用于更改Launchpad背景。 Launchpad.app只是一个虚拟应用程序,在打开时会立即退出。
如果您只想更改背景样式,可以使用defaults write com.apple.dock springboard-background-filter -int 2; killall Dock
。