Hatena::ブログ(Diary)

Rubyとか Illustratorとか SFとか折紙とか このページをアンテナに追加 RSSフィード

2010-10-21

Windosで、CD(DVD)トレイを開閉する

| 17:36 | Windosで、CD(DVD)トレイを開閉するを含むブックマーク Windosで、CD(DVD)トレイを開閉するのブックマークコメント

結構悩んでしまった、

CD/DVDトレイ開閉スクリプト - IT生活向上ブログ

wmp = WIN32OLE.new 'WMPlayer.OCX'
f = wmp.cdromcollection.getByDriveSpecifier('F:')
f.eject
f.eject

「F:」は光学ドライブのドライブレター、手元ではそうでした。

同じドライブオブジェクトに対し ejectメソッドを繰り返すとトレイが閉じます、オブジェクトを作り直してしまうと閉じなくなるの注意。そのときは二度 eject呼ぶと閉じます。

一行スクリプトで閉じるならこんな感じか

WIN32OLE.new('WMPlayer.OCX').cdromCollection.item(0).tap{|f|f.eject}.eject

そして WIN32OLE.new('WMPlayer.OCX')オブジェクトや、WIN32OLE.new('WMPlayer.OCX').cdromCollectionオブジェクトが捕まえてる間はドライブの電源を切れなかったり。

Microsoft スクリプト センター | TechNet

そしてトレイを開いたり閉じたりする(一行)スクリプト、もうドライブ指定しなくていいじゃん、それっぽいの最初で。

光学ドライブトレイを開く

eject.rb

require 'win32ole'
WIN32OLE.new('WMPlayer.OCX').cdromCollection.item(0).eject

光学ドライブトレイを閉じる

tceje.rb

require 'win32ole'
WIN32OLE.new('WMPlayer.OCX').cdromCollection.item(0).tap{|cd| cd.eject}.eject
トラックバック - http://d.hatena.ne.jp/hs9587/20101021/1287650213
リンク元