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

Application processes of Finder for MAC OS 8.5.1

発言者:ほりかわれいこ
( Date Monday, April 12, 1999 16:10:05 )


AppleScript初心者です。
いつもこちらのページにはお世話になっています。

Finderのapplication processesについて質問があります。
以前、こちらのページで、
" dx is in application processes ”という使用方法を教えていただいてから
MAC OS 8.1で、 AppleScriptの中で、あるアプリがlaunchされているかどうか
調べるためにこのスクリプトを使っていました。
今回、MAC OS 8.5.1を導入したので、そちらでも同じスクリプトを動かそうと
思ったのですが、"dx is in application processes" でアプリケーションがlaunch
されているのにもかかわらず、falseが返ってきてしまうようになってしまいました。

MAC OS 8.5では、このスクリプトは使えないのでしょうか。
使えない場合、どのようにして判定を行えばよいでしょうか。
どなたか御存知の方がいらっしゃいましたら、フォローよろしくお願いします。

田中求之 さんからのコメント
( Wednesday, April 14, 1999 16:29:16 )

8.5 で AppleScript を使い込んでいないのですが、以下のような処理で
うまくいきませんか?

たとえば、Netscape が立ち上がっているかどうかを判定したいとします。
このとき、

tell application "Finder"
  set myList to application processes whose creator type = "MOSS"
end tell

を実行して、mylist が空({})だったら立ち上がっていないということに
なります。Netscape が立ち上がっていた場合には、myList にそのプロセ
スが入ります(つまり空にはならない)。

もし名前で判定したい場合には、

tell application "Finder"
  set myList to application processes whose name contains "Netscape"
end tell

を実行して、mylist が空かどうかで判定することになります。

ほりかわれいこ さんからのコメント
( Thursday, April 15, 1999 10:01:22 )

コメントありがとうございます。

わたしも下記のようなスクリプトに置き換えて使っていました。

tell application "Finder"
  set myApp to application "自分のアプリケーションのフルパス"
  set myFlag to ( name of application processes ) contains (myApp as string)
  if myFlag then 
    ------

  end if 
end tell

でも田中先生のスクリプトのほうが格好が良いので、そちらを使わせていただきます。
ただ、最初に使用していた

tell application "Finder"
  
  set myFlag to ( myApp is in application processes )
end tell

は、やっぱりつかえなくなっちゃったんだろうか、という疑問は残ってるん
ですけど。

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