4

後で OSX アプリで使用する AppleScript をテストしています。以下のクリック ボタン コマンドの後、6 秒の遅延が発生します。いくつかの調査の結果、これは既知の問題のようです。興味深いのは、商用アプリのQuicKeysを使用して同じボタンクリックを実行すると、遅延がないため、回避策が見つかったと思います. 誰にもアイデアはありますか?

 tell application "System Events"
     tell process "Pro Tools"
         set frontmost to 1
         click button "Track List pop-up" of window 1 
         --  6 seconds delay before next command is sent
         key code 36   -- return key stroke
     end tell
 end tell
4

2 に答える 2

2

同じ問題を抱えていたので、遅延の原因となるクリックをignoring application responsesブロックで囲むことで解決しました。ここに簡単な要約があります:

OLD CODE (6 秒の遅延の原因)

tell application "System Events" to tell process "SystemUIServer"
    set bt to (first menu bar item whose description is "bluetooth") of menu bar 1
    click bt
    tell (first menu item whose title is "SBH80") of menu of bt
        click
        tell menu 1
            if exists menu item "Disconnect" then
                click menu item "Disconnect"
            else
                click menu item "Connect"
            end if
        end tell
    end tell
end tell

新しいコード (遅延なし)

tell application "System Events" to tell process "SystemUIServer"

    set bt to (first menu bar item whose description is "bluetooth") of menu bar 1
    ignoring application responses
        click bt
    end ignoring
end tell

do shell script "killall System\\ Events"
delay 0.1
tell application "System Events" to tell process "SystemUIServer"

    tell (first menu item whose title is "SBH80") of menu of bt
        click
        tell menu 1
            if exists menu item "Disconnect" then
                click menu item "Disconnect"
            else
                click menu item "Connect"
            end if
        end tell
    end tell
end tell

以下のスレッドで詳細な回答を確認してください。

AppleScript UI スクリプトをスピードアップしますか?

お役に立てれば。

于 2016-04-02T08:02:38.540 に答える
1

click または axpress が大きな遅延を引き起こしているようです。

代わりに - 位置を取得し、サードパーティのシェル スクリプトを使用してクリックを行います。はるかに高速。

クリックリックの使用: https://www.bluem.net/en/mac/cliclick/

ユーザーライブラリに入れる/アプリケーションサポート/クリック

set clickCommandPath to ((path to application support from user domain) as string) & "Click:cliclick"
set clickCommandPosix to POSIX path of clickCommandPath

tell application "System Events"
 tell process "Pro Tools"
     set frontmost to 1
     tell button "Track List pop-up" of window 1 
     set {xPosition, yPosition} to position
        set x to xPosition
        set y to yPosition
    end tell
    do shell script quoted form of clickCommandPosix & " c:" & xPosition & "," & yPosition
     key code 36   -- return key stroke
 end tell

終わりを告げる

于 2015-11-10T05:11:12.940 に答える