このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

実行までの時間をカウントダウン

発言者:大石
( Date Sunday, March 19, 2000 13:42:19 )


田中さん、皆さんこんにちは。今回も初歩的な質問だと思う(私自身レベルが低すぎて、それすら分かりません。恥ずかしい!!)のですが、お手すきの方は、教えて下さい。
アプリケーション(アップルスクリプト)のダイアログで実行までの時間をカウントダウンし、15秒後に自動で実行する様にするには、どうすれば良いのでしょうか?
宜しくお願いいたします。

田中求之 さんからのコメント
( Sunday, March 19, 2000 14:59:07 )

カウントダウンの表示というのが、実は大変なんです。

AppleScript の標準のセットでは、メッセージなどを表示するには
Display Dialog を使うしかないのですが、これは表示中に動的に
メッセージを変更することができないわけです。

MacOS 8.5 以降であれば、一定時間たった時点で自動的にダイアログを
消去することができますので、たとえば

set myResult to (display dialog "15秒後に爆発します" buttons {"私が悪かった"} giving up after 15)
if gave up of the result then
  bomb
else
  display dialog "分かればいいんだよ"
end if

てなことができるのですが(bomb というコマンドはありませんよ、念のため)
表示中にカウントダウンはひょうじできません。

サードパーティのツール(Message Window など)を使うと可能です。

大石 さんからのコメント
( Monday, March 20, 2000 02:29:29 )

田中さん。早速のご回答ありがとうございます。毎回、変な質問をしているにもかかわらず、お付き合い頂きまして、ありがとうございます。教えていただいて、直ぐに試してみました。感激です。

一応、Message Windowのサイトを探してみます。(見つけたところで、私には理解できないでしょうが...。ガクッ)

もし、参考アドレス等御存知でしたら、教えて欲しいです。
でも、本当にお手すきの時にで結構です。

ありがとうございました。

田中求之 さんからのコメント
( Monday, March 20, 2000 12:03:15 )

Message Window は、以下の acme technologies のページから入手
できます。

ただ、今動かしてみたら、日本語が文字化けしますね(どうやらフォントが
英語に固定?)

ということで、これは使えないですね(デバッグや、実行中の状況を表示させる
のに重宝しているのですが、日本語の表示には気がつきませんでした)

→  Acme Technologies: Products: Downloads

大石 さんからのコメント
( Tuesday, March 21, 2000 05:17:24 )

田中さん、ありがとうございます。
そうですか、日本語NGは、つらいです。
一応、今からダウンロードしてみます。
大変お手数お掛けしました。すみませんでした。
又、解らないことが出てきたときは、よろしくお願いします。

益々のご活躍をお願いいたします。ありがとうございました。

野本夏俊 さんからのコメント
( Tuesday, March 21, 2000 10:07:21 )

Dialog Directorでもカウントダウンが出来ますよ。
日本語も大丈夫です。カウントダウンのサンプルを↓に置いておきます。
http://linkclub.or.jp/~nomo/download/CountDown.sit.hqx
Dialog Directorは↓から入手できます。

→  Dialog Directorのサイト

大石 さんからのコメント
( Tuesday, March 21, 2000 23:52:50 )

野本さん、ありがとうございます。
早速、サンプル頂きました。
それと、Dialog Directorもダウンロードしました。
今から、ワクワクしながら触ってみます。

本当にありがとうございました。

MARo さんからのコメント
( Saturday, March 25, 2000 23:05:16 )

ダイアログを出すことにこだわらなければ、Speech Managerを入れて、
英語でしゃべらせてカウントダウンする、という方法もあります(^-^;


大石 さんからのコメント
( Monday, March 27, 2000 03:48:01 )

MARoさん、ありがとうございます。
それは、大変興味深いです。
一度試してみます。
多分解らないと思いますので、その時は、又教えてください。
よろしくお願いいたします。

MARo さんからのコメント
( Thursday, March 30, 2000 01:48:06 )

SpeechManagerはOS9や8.5のCD-ROMに入っているものをインストールするだけでOKです。カウントダウンのスクリプトは下の3行だけです(^-^;;

repeat with a from 15 to 0 by -1
  say (a as text)
end repeat

大石 さんからのコメント
( Tuesday, April 04, 2000 03:46:26 )

MARoさん。スクリプトありがとうございます。
早速、やってみます。
それから、色々試しているうちに、スクリプティング機能拡張を追加しなくても、カウントダウン出来るようになりました。ちょっと変な箇所があるので、それが解決できたら、書き込みますので、又、ご指導下さい。
ありがとうございました。

大石 さんからのコメント
( Wednesday, April 05, 2000 03:24:39 )

田中さん、野本さん、MARoさん、ありがとうございました。
偶然できたカウントダウンのスクリプトです。ダイアログが点滅してしまいますが...。自分では満足しています。
これってAppleScriptの達人方からすると、ルール違反ですか?
又、ご指導下さい。

repeat with x from 15 to 1 by -1
  display dialog (x as string) buttons {"キャンセル", "一時停止"} ツ
    giving up after 1 with icon 1
  if gave up of the result then
  else
    display dialog "一時停止中です。" buttons {"キャンセル", "続ける"}
  end if
end repeat
display dialog "!!"

MARoさんに、教えていただいたSpeechManagerのスクリプトと合わす事も出来ました。
皆さん、本当にありがとうございました。

田中求之 さんからのコメント
( Saturday, April 08, 2000 14:35:18 )

>これってAppleScriptの達人方からすると、ルール違反ですか?

ルール違反なんてないですよ。自分が動かしたいように動かせれば
スクリプトはそれでいいんです。

MARo さんからのコメント
( Saturday, April 08, 2000 15:03:12 )

達人ではありませんが・・・私も、「動いたもん勝ち」だと思います。(^-^;
どれだけ楽ができて、確実に仕事をこなせるかがミソなんでないかと。

大石 さんからのコメント
( Sunday, April 09, 2000 13:02:47 )

田中さん、MARoさん、数回にわたりレスいただき、ありがとうございました。
また、解らない事が出てきた時に、御指導をお願い致します。
ありがとうございました。