• ベストアンサー

hspでのCDドライブ開閉

mci "set CDAudio door open" で開く mci "set CDAudio door closed" で閉じる ということはわかりました。 ところで プログラムを起動したら 「トレイが閉じていたら、開く」 「トレイが開いていたら、閉じる」 というプログラムを作成したいのです。 IF文を使ってトレイがあいているか閉じているかを 調べればいいと思うのですが、 どうやればいいかわかりません。 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

いろいろと探してきましたが無理なようです。^^; stat値がいつも0なのはそれ自体の命令がちゃんど動作しているからです。 つまり、mciコマンドが送れたらそれだけで成功ということになります。この場合のエラーは、コマンドが間違っているぐらいです。 ひとつそれと似たようなことが出来るのですが、 exist "chk.txt":if strsize=-1:bsave "chk.txt",dat str dat bload "chk.txt",dat,1 int dat if dat=0:mci "set CDAudio door open" if dat=1:mci "set CDAudio door closed" if dat=0:dat=1:else:dat=0 str dat bsave "chk.txt",dat ,1 end です。このまま実行することが出来るようになっている。HSPのスクリプトです。  これは、chk.txtの内容を読み込んで0ならCDトレイをオープンし、1だったらCDトレイを閉じて、次の起動時に、今やった動作と別の動作をするようにdatの値を変え保存する。スクリプトです。 欠点は、始めの起動が必ずオープンになってしまうことぐらいです。 内容は求めているものと近い思います。 HSPプログラミングがんばってください(^ヮ^

azicyan
質問者

お礼

久しぶりに過去の投稿を見ていました! ありがとうオございます 早速やってみます!!

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#9119
noname#9119
回答No.2

CDドライブの開閉状態の取得方法 http://forums.belution.com/ja/vc/000/153/83s.shtml MCIコマンドではCDドライブのトレイの状態は厳密には分からないようです。 HSPのマニュアルのmciの項には >mciに命令を送った場合の結果はシステム変数statに反映されます。 とあります。 open, close ではエラーにならないかもしれませんが。

参考URL:
http://forums.belution.com/ja/vc/000/153/83s.shtml
azicyan
質問者

補足

VCですか・・・・ HSPでは無理ですか? ちなみに開いているときにOPENしても statは0のままでした・・・

すると、全ての回答が全文表示されます。
  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/mci/listExt.html http://www.silkroad.ne.jp/sakura/web/main/tips/base73.htm 実際にプログラミングしたことがないのですが、 上記URLを参考にできませんか? ステータスの取得ができない場合は、とりあえず、openを 実行して、もしエラーとなたら close を実行にするという手もあるようにあきがします。

azicyan
質問者

補足

そこを見たんですが・・・・ では、たとえのとうりに 「OPENしたらエラーだった!」 ということを判断するにはどうしますか?

すると、全ての回答が全文表示されます。

関連するQ&A