web-dev-qa-db-ja.com

Applescriptに実行を停止するように伝える方法

Applescriptの「リストから選択」のユーザーインタラクションには「キャンセル」ボタンがあります。この「キャンセル」で、スクリプトにすぐに実行を停止するように指示します。言い換えると:

 set wmColor to choose from list {"Black", "Black for all", "White", 
     "White for all"} with Prompt "What color should the watermark be?" 
     default items "White for all" without multiple selections allowed and 
     empty selection allowed
 if wmColor is false
     *tell script to stop executing*
 end if

これを行う方法を見つけることができないようです—誰かが方法を知っていますか?

22
jefflovejapan

エラー番号-128は「ユーザーがキャンセルしました」で、スクリプトを停止します-例:

if wmColor is false then
    error number -128
end if
31
user866649

「return」は、スクリプトに実行を停止するように指示します。

display dialog "Do you want to exit this script?" with icon note buttons {"Exit", "Continue"}
if the button returned of the result is "Exit" then
  return
end if
12
Karl

Osascriptを介して呼び出されるAppleScriptの特定のケースでは、次のようにして終了することができ、シェルにステータス0を返します。

tell me to "exit"

次のようにして、メッセージを終了し、ステータス1を返します。

tell me to error "{your message}"

上記は、次のような行を標準エラーに書き込みます。

{scriptname}: execution error: {your message} (-2700)

以下は、不可解な「-2700」を置き換える例であり、jefflovejapanが探していることを実行する可能性があります。

tell me to error "Terminated by user" number 0

これは標準エラーにこれを書き込みます:

{scriptname}: execution error: Terminated by user (0)

ステータス1を返します。

これを読んだ後、私は実験によってこれを学びました: AppleScript言語ガイド-エラーステートメント

2
G H

これは、アプリケーション(たとえば、InDesign CS5.5)内で実行されているスクリプトに適しています。

repeat 100 times
    tell application ("System Events") to keystroke "." using command down
    delay (random number from 0.5 to 5)
end repeat

これは answer から変更されました。

1
spyle

Wordの「quit」を使用して、現在のアプリケーションを終了できます。スクリプトをアプリケーションとして保存する場合に使用できます。

if wmColor is false
    quit
end if
0
Elijah