Numbersスプレッドシートに接続するAppleScriptアプリケーションがあります。AppleScriptをタイマーとして使用する
リピートループ内では、現在の日付が10秒ごとに記録され、スプレッドシートセルが更新されます。
私は、タイマーを停止し、最終の '現在の日付'を別のテーブル/セルに記録し、AppleScriptアプリケーション(Numbersではなく)を終了する方法が必要です。
Numbersスプレッドシートに接続するAppleScriptアプリケーションがあります。AppleScriptをタイマーとして使用する
リピートループ内では、現在の日付が10秒ごとに記録され、スプレッドシートセルが更新されます。
私は、タイマーを停止し、最終の '現在の日付'を別のテーブル/セルに記録し、AppleScriptアプリケーション(Numbersではなく)を終了する方法が必要です。
これは、繰り返しループを終了する条件によって異なります。
次のブール式がtrue
に評価されている場合は、
repeat until
/repeat while
で不確定な繰り返しループを残すことができます。exit repeat
いつでも可能です。ここでは、リピートループを使用せずに、必要な機能を実行するために、「ステイオープン」アプリケーションとアイドルハンドラを使用する例を示します。
on idle
tell me to activate
set q to display dialog "stop?" buttons {"yes"} giving up after 10
if button returned of q is "yes" then
quit
else
beep --replace with your Numbers stuff
end if
return 10
end idle
on quit
continue quit
end quit
@markhの2つの方法があります。あなたはスクリプトを使ってリピートループを使って "give up after"メソッドを使うことができます(ダイアログを邪魔するのはあなたのことです)、あるいはあなたのスクリプトがあなたを待つのを待つことができたらどうしますか?コントロールキー?あなたは自由なサードパーティのCheckModifierKeysとシェルスクリプトを使ってこれを行うことができます: 'do shell script"/usr/local/bin/checkModifierKeys control "'(これを使うリピートループの最上部で、ボタンを押したままにしておくと、リピートループが終了します) – CRGreen
ボタン付きの専用ウィンドウが必要な場合は、もう1つのオプションがあります。このように動作します:プロセスを開始するには、ボタンを押します。それを終了するには、escキーかcommand-periodを押します。唯一の欠点は、別のアプリで何か他のことをやっていて、コマンド期間やescを押したときにループが終了する可能性があるということです(その他の理由で)。これはSmile(フリースクリプトエディタ)を使用して可能です。あなたが興味を持っているならば、私はあなたにスマイルでこれをする完全な答えを与えることができます。興味がないなら私は気にしません。 – CRGreen
おかげヴァディアンが、私が終了されるように繰り返しループを有効にしても前に自分自身(ダイアログ)または数字を招くことなくなり、「停止」ボタンで表示されるダイアログのようなものを使用することができるように期待していましたアクティブなアプリにすることができます。多分私は元の質問にその情報を含めるべきでした! – markh
質問の情報が広すぎて、具体的な回答が得られません。 – vadian
OK。リピートループがあり、stop/okダイアログをクリックするまでリピートループするアイコンストップの表示ダイアログがありますか? – markh