ユーザーがストップを押したかどうかを検出する


0

ユーザーが[停止]をクリックして、いつでも実行中にプログラムを停止できるプログラムがあります。

ユーザーがスクリプトエディターの[停止]ボタンを押した場合(-128 "User cancelled"エラーが発生する)を検出する方法を探しているので、プログラムを閉じる前に少しクリーンアップできます。

これを行う方法はありますか?

回答:


2

次のようなtryブロックを使用できます。

repeat -- your loop
    try
        --
        -- your code in the loop
        --
    on error err number n
        if n = -128 then -- User canceled
            --
            -- code to  cleanup before the program closes
            --
            return -- exit this script
        end if
    end try
end repeat

0

スクリプトエディターはスクリプトの上にあります。ヒットがそこで停止すると、それ以上行は実行されません。

反対側で、そこからアプリケーションを作成し、そこに表示されている任意のボタンを押すと(例:を介してdisplay dialog)、そのボタンを実行するようにプログラムしたものがトリガーされます。


私のプログラムでは、ループが絶えず実行されており、いつでもループから抜け出したいと考えています。それを行うことができるボタン付きのダイアログを持つ方法はありますか?
user3932000

ループ(または長く待機しないループ)を使用する場合、変数の状態を要求して繰り返しループを終了できます。その変数をグローバルに定義し、という名前のAppleScriptハンドラー内で変更しon quitます。あなたがヒットした場合Application Menu> Quit(またはキーボードと同等)あなたのプログラムがそれを介して実行される、変数を変更し、そのループから抜け出します。すぐに見つけることはできませんでしたが、Appleには「AppleScript Language Guide」というタイトルのPDFがありon quitます。
フェニックス

あなたのコメントで質問を広げるなら、私も答えでそれをします。
フェニックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.