1

AppleScript を作成しましたが、launchd を使用して起動時に実行できるように、それを osascript に変換したいと考えています。これを 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
4

1 に答える 1

1

1秒に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

于 2012-08-14T09:21:08.097 に答える