« 感激のフォトロギリズム | メイン | 運用するべきものがない。 »

アプリ定期チェックスクリプト

FileMakerのWebコンパニオンが時々落ちる。原因不明。
しょうがないので、プロセスが起動しているかどうかをチェックし、起動していなかったら、再度立ち上げるAppleScript。

on run
 tell application "ファイルメーカーPro"
  activate
  open file "*********"
 end tell
end run

on idle
 set myList to application processes whose name contains "ファイルメーカーPro"
 if myList = {} then
  open file "*********"
  set the date_stamp to ((the current date) as string)
  try
   set fPointer to open for access (file "Data:filemaker:********:fmrestart.txt") with write permission
   write date_stamp & return to fPointer starting at eof
  end try
  close access fPointer
 end if
 return 20
end idle
(****のところは自分とこのパスorファイルに書き換える)


解説:まず、on runで、スクリプト起動時に、必要なファイルを開く。
つぎに、on idleで、AppleScriptでつくったアプリケーションが、アイドル時に行う動作を定義する。
ここでは、Finderから"ファイルメーカーPro"という名前が含むプロセスリストを取得し、それがカラだったら、すなわち、プロセスが起動してないと判断し、ログに記録する。(fmrestart.txt)
return 20で、20秒後とにチェックする。本来であれば、もうすこし間隔をあけてもよいと思うけれど、どうもWSC(WebServerConnect)が、FMのプロセスと通信できない時間が30秒くらい立つとWSCもダメになってしまうようなので、20秒間隔でチェックすることにする。

on idle時にプロセスの有無をチェックせずにふつうにファイルを開いてもいいのだけれど、定期的にアプリが強制的に全面に来てしまうので、しょうしょううざったい。

一つ重要なのは、ScriptEditorから、アプリを生成する時に「実行後、終了しない」をチェックしてから生成しないと、on idleイベントを実行できないので要注意。

コメントを投稿

2008年10月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

最近のコメント

小優 on 日々の記録: DELL4600Cで
よしぞう on 日々の記録: 4600C 表記の対
よしぞう on 日々の記録: 4600C 表記の対
on MySQL後で調べるメモ: DB接続後 目的のS
on 日々の記録: 「無くなった留め具」
on JavaScriptでクロスドメイン: >しかし、こういう小
junp on iMovieで静止画を取り込むと荒い: すいません困ってます
う〜ん・・・ on 素朴な疑問: にょうをした、きたな
困ってました on ATOKとIME2005が勝手に切り替わる問題: 何故か勝手に切り替わ
go on 日々の記録: 4600C、同じ症状

アーカイブ