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

AppleScriptの実行

発言者:smart
( Date Tuesday, March 18, 1997 08:16:03 )


いつもお世話になります。

AppleScriptで、Statementは順に実行されますが、以下の様な場合
ファイルAのオープンが終了する前に、Bのオープンが始まります。
Aのオープン終了後、Bのオープンを開始する様に指定出来るのでしょうか。

【Script】
tell application "Finder"
  open file A
  open file B
end tell

田中求之 さんからのコメント
( Tuesday, March 18, 1997 12:23:11 )

なんのファイルなんでしょうか?

ファイルを開くアプリケーションの情報をチェックするとか、プロセスをモニターする
など、状況次第では可能になる手段もありますが。

smart さんからのコメント
( Tuesday, March 18, 1997 14:21:33 )

回答ありがとうございます。

Aはanalogのアプリで、Bはその結果ファイルです。

田中求之 さんからのコメント
( Tuesday, March 18, 1997 17:41:59 )

でしたら、まず Analog を立ち上げ、それが処理を終わったら(自動終了する
のでしたっけ?)、結果のファイルを開くという処理になりますね。

Analog が、処理後に自動終了するようになっていれば、スクリプトで対応
可能です。

smart さんからのコメント
( Tuesday, March 18, 1997 18:44:59 )

Analogは、自動終了します。しかし、以下の様にやると。

open analog
open report.html

analogが終了する前に、report.htmlのオープンが始まってしまいます。

田中求之 さんからのコメント
( Tuesday, March 18, 1997 19:13:44 )

当然、そのままではうまくいきません。

そこで、process をモニターして、Analog のプロセスが終了したら次のファイルを
オープンするようにします。

具体的には以下のようなスクリプトを使います。

----

tell application "Finder"
  
  open file "Servers:Analog 2.0 ト:Analog 2.0" --- Analog を起動
  
  set dx to application "Analog 2.0"
  
  repeat until dx is in application processes
  end repeat
  repeat while dx is in application processes --- Analog が動いている間は待つ
  end repeat
  
  open file "Servers:Analog 2.0 ト:Report.html" --- 次のファイルを起動
  
end tell



smart さんからのコメント
( Wednesday, March 19, 1997 09:30:13 )

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

色々な物に使用した所、状況によっては最初のrepeatに入った時に、
既に実行が終わっている場合もあり、カウンタを設けてexitする様にしました。

AppleScriptは、本当に色々出来ます。