あなたのスクリプトは機能しません。アプリケーションに何かをするように指示すると、applescript はアプリケーションがそれを行うのを待ってから、残りのコードを実行します。そのため、スクリプトは Finder がタスクを完了するのを待ってから、システム イベント コードに進みます。したがって、基本的にスクリプトでは、ダイアログが閉じられるまでシステムイベントコマンドは実行されません。つまり、この方法でダイアログを閉じることはできません。
ただし、このようなアプリケーションからの応答を待たないようにapplescriptに指示できます...
ignoring application responses
tell application "Finder"
activate
display dialog "blah"
end tell
end ignoring
delay 0.5
tell application "System Events" to keystroke return
applescript はシングル スレッドであるため、2 つの別々のプロセスを使用する方法もあります。1 つはダイアログを表示し、もう 1 つはダイアログを閉じます。これは、タスクごとに 1 つずつ、2 つの異なる AppleScript で行うことができます。もう 1 つの方法は、シェルを使用して 1 つのプロセスを作成し、そのプロセスをバックグラウンドに送信して、applescript がシェルの終了を待たないようにし、ダイアログを閉じることです。その方法を次に示します。
do shell script "osascript -e 'tell application \"Finder\"' -e 'activate' -e 'display dialog \"blah\"' -e 'end tell' > /dev/null 2>&1 &"
delay 0.5
tell application "System Events" to keystroke return
これを行うにはいくつかの方法があることがわかります。幸運を。