ディスクのイジェクト(Finder)

1997.4.30


 AppleScriptでマウントしているディスクをイジェクトする場合の注意です。

 まず、ディスク名があらかじめ分かっているのなら、Finderの「Put Away」命令がそのまま使えます。たとえば次のように書いてみて下さい。

tell application "Finder"
  put away disk "Untitled"
end tell

 これで「Untitled」という名前のディスクがEjectされます。

 Finderには「Eject」という命令もありますが、これはEjectされたディスクの「影」がデスクトップに残ってしまうので普通は使えないと思います。

 ディスク名が分からない場合はちょっとだけ複雑です。常にマウントしておきたいディスクは、Ejectの対象から除外しなければなりません。FinderでDiskの「ejectable」属性を取得し、これがtrueであれば「put away」する、というのが一番簡単な方法だと思います。要するに、Ejectできるディスクは全部Ejectしてしまおうというスクリプトですね (^ ^;)

tell application "Finder"
  set DiskList to every disk
  repeat with aDisk in DiskList
    if ejectable of aDisk then
      put away aDisk
    end if
  end repeat
end tell

 ただこの方法は、「ejectableだけどマウントしておきたいディスク」があると使えません。こういう場合は、Ejectしないディスクの名称をあらかじめ登録しておくと良いでしょう。

property pUnejectDisks : {"My Disk"}

tell application "Finder"
  set DiskList to every disk
  repeat with aDisk in DiskList
    if (ejectable of aDisk) and not (pUnejectDisks contains name of aDisk) then
      put away aDisk
    end if
  end repeat
end tell

 上の例では、「My Disk」という名前のディスクを除いて、イジェクト可能なディスクを全てイジェクトします。

 ディスクのイジェクトそのものはAppleScriptから扱う機会があまりないのですが、キーマクロユーティリティーなどと組み合わせると結構便利かもしれません。


Tipsに戻る
AppleScriptのページに戻る
このホームページに関するお問い合わせは、karino@drycarbon.comまで。