Archive for the 'Toast Titanium' Category

2014/01/30 光学ドライブのトレイオープン

光学ドライブのトレイのオープンを行うAppleScriptです。shellのdrutilコマンドを呼んでいるだけです。

昔から、コンピュータのCD-ROMドライブをオープンさせるのは、AppleScriptのデモの定番で……自分も、最初にAppleScriptを覚えて実行したのは、ダイアログを表示させたり、CD-ROMドライブをオープンさせるOSAX(AudioCDgh OSAX)をClassic Mac OSにインストールして、オープンさせるというものでした。

「プログラム共有」の機能を使って、LAN上の多数のMacのCD-ROMドライブを一斉にオープンさせたりと、いろいろとイタズ……いえ、実験を繰り返していました。それだけ、光学ドライブの開閉には人一倍思い入れがあります。

ただ……最近は、光学ドライブが標準装備ではなくなって、最新型ではデスクトップ型もノート型もすべて光学ドライブを積まなくなりました。かくして、CD-ROMなどの光学ドライブをイジェクトして遊ぶという「芸」はすたれておりました。

そんな中、Twitter経由で光学ドライブのトレイのオープンについて質問が飛んでいたので、記憶が定かではなかったこともあり、あらためて調べてみました。

USB経由で外付けドライブをつなげることはできるので、自分もBlu-rayドライブを1台用意してあります(映画鑑賞用)。

  「たしか、ナントカutilとかいうコマンドを実行するんだったなー」

ぐらいのあやふやな記憶(昔、新居さんに教わった記憶が……)でなんとか正解にたどりつきました。

これらのScriptを実行すると、複数台の外付け光学ドライブを一斉にイジェクトします。特定のドライブだけイジェクトさせない、といった細かい制御が行いたい場合にはもうひと工夫必要なようです。

drutilコマンドのオプションをTerminal上でman drutilして調べると、けっこういろいろ面白いオプションが見つかります。

自動クローズ可能なドライブであれば、イジェクトもクローズもできるようです(drutil tray close)。

img_2292.JPG
▲ejectスクリプト実行前

img_2293.JPG
▲ejectスクリプト実行後。光学メディアが入っていてもアンマウント&イジェクトされる

スクリプト名:光学ドライブのトレイオープン
do shell script “/usr/bin/drutil eject”

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

スクリプト名:光学ドライブのトレイオープン2
do shell script “/usr/bin/drutil tray eject”

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

スクリプト名:光学ドライブのトレイオープン(内蔵ドライブのみ)
do shell script “/usr/bin/drutil eject internal”

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

スクリプト名:光学ドライブのトレイオープン(外付けドライブのみ)
do shell script “/usr/bin/drutil eject external”

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

drutilのコマンドラインオプションには、external/internalの指定ができるように書いてあるのですが、後日Mac mini+外付けBlu-rayドライブの組み合せでInternal/Externalの区別が可能か実験してみたところ……これらの指定は効きませんでした。external/internalのオプションをつけても、内蔵/外付けの両方ともイジェクトされていました。

img_2294.jpg

img_2295.jpg

なお、あまり必然性はありませんが、DVD PlayerやToastにもイジェクト命令が実装されており、このためだけに使うのはまったくおすすめできませんが、光学ドライブトレイのイジェクトが実行可能です。

スクリプト名:DVD PlayerでDVDをイジェクト
tell application “DVD Player”
  eject dvd
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

スクリプト名:Toastで光学ドライブのオープン
tell application “Toast Titanium”
  eject
end tell

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に