• ベストアンサー

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

  • HSPについて

    screen 0,320,240,1,dispx-320>>1,dispy-240>>1 mes "coin:a" mes "hit:s" mci "open Coin.wav alias abc" mci "open hit.wav alias def" *key onkey *push stop *push if iparam=65 : mci "play abc" if iparam=83 : mci "play def" wait 30 goto *key 文化祭用にプログラムを組んだのですが、実行してもらえれば分かると思いますが、特定のキーを押すと1回目は問題なく再生されるのですが、2回目に同じキーを押すと音がでません。 キーを押すと、特定の音が出るように組みました。 どのようにすればいいでしょうか? よろしくお願いします. 言語はHSPです。

  • DVDドライブのトレイの開閉について

    お世話になります。 先日購入したばかりのパソコンのDVDドライブのトレイの開閉(出し入れ)について意見をお聞かせ下さい。 メーカー製ではないのですが、OSは Win XP Media Center Edition 2005 のパソコンを購入しました。 CDなどをセットする場合には、パソコン本体ケースのDVDドライブ部分にあるボタンでトレイを出す方法と、マイコンピューター内のDVDドライブを右クリックしてメニューから「取り出し」でトレイを出してCDなどをセットする方法の2つがあると思います。 トレイを入れ込むには、マイコンピューター内のDVDドライブを右クリックしてメニューから「ロード」をクリックしてトレイを入れていました。 昨日までいくつかアプリをインストールしましたが、今日初めてDVDのトレイを出して、マイコンピューター内のDVDドライブを右クリックしてみると、「取り出し」は有るのですが、「ロード」がなくなっています。 再起動してみても同じでした。 手でそっと押してトレイを入れていますが、後々大丈夫でしょうか。 パソコン本体ケースのDVDドライブ部分にあるボタンはトレイが出ている状態では使えません。 アプリをインストールしている内に消えてしまったのでしょうか。

  • VBSでCDトレイのオープン/クローズのコーディング方法わかりません。

    VBSでCDトレイのオープン/クローズのコーディング方法わかりません。 Excel for VBA では出来ましたが、VBSで作りたいのです。 http://www.mhl.janis.or.jp/~winarrow/vbscript/htm/vbs230.htm を見ると、VBSではDeclareが使えないようですね。 やり方がわかる方がいましたら、よろしくお願いします。 ----------- [Excel for VBA] Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpSectorsPerCluster As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Sub CD_Open() Ret = mciSendString("set cdaudio door open", vbNullString, 0, 0) End Sub Sub CD_Close() Ret = mciSendString("set cdaudio door closed", vbNullString, 0, 0) End Sub -----------

  • CDドライブが開かない

    ●環境 パソコン型番:VPCJ218FJ OS:Windows7 HOME Premium + servie Pack1 ●状況 Windowsを起動した状態でCDドライブのイジェクトボタンを押下してもトレイが出てきません。 そこで以下のURLを参考に http://qa.support.sony.jp/solution/S0007240003538/ BIOSのメニュー画面でイジェクトボタンを押下してもトレイが出てきませんが、マニュアルイジェクト穴に針を挿入するとトレイが出てきます。 ただしトレイにCDをセットしてもCDの中身を見ることができません。 この症状だとドライブを交換するしかないのでしょうか? ※OKWaveより補足:「ソニー製品」についての質問です。

  • open,closedについて

    お世話になっております。 以下についてお教え頂けないでしょうか。 She always has meetings in her office with the door closed. She always leaves her door open. (1)どうしてthe closed doorにならないのでしょうか? (2)with the door closed.は文法的にどう考えたらよろしいでしょうか? (3)She always leaves her door open.の文型はSVOCであっていますでしょうか? また、このopenは形容詞と考えましたがあっていますでしょうか? 何卒よろしくお願い申し上げます。

  • LISPによる横型探索

    LISPのSchemeをつかって横型探索で探索した経路を出力するプログラムをつくっているのですが、 今は探索が終わると終了するとCLOSEDの中を表示するプログラムしかできていません もしこれに探索した経路の出力をする機能を加える場合どうすればいいですか? OPEN→待ちリスト CLOSED→展開済みリスト GOAL→目標地点 OP→オペレータの集まり nとopから展開の結果をだす (define (tenkai n op) (tenkai2 n op '())) (define (tenkai2 n op kekka) (if (null? op) kekka (if (= n (car (car op))) (tenkai2 n (cdr op) (cons (car (cdr (car op))) kekka)) (tenkai2 n (cdr op) kekka)))) (define (yokogata open goal op closed) (if (null? open) 'sippai (if (= (car open) goal) (display closed) (yokogata (append (cdr open) (tenkai (car open) op)) goal op (append closed (list (car open)))))))

  • openとclosed

    「ドアを開けっ放しにしないでください。」の英訳は、 Please do not leave the door open.ですが、 「ドアを閉めっぱなしにしないでください。」の英訳は Please do not leave the door closed.であり、 前者は、openという動詞の原形であるに対して、後者はclosedという動詞の過去分詞であるのはなぜでしょうか?

  • ノートPCのCDドライブが起動しなくなりました…

    ノートパソコンのCDトレイが開かず、マイコンピュータ→CDドライブとやってみても中身のCD自体を認識しません。起動しようとするとCDが入っているにも関わらず、『CDをセットしてください』みたいに出るんです… 今まで動いていたのに… CDはトレイの穴を突いて取り出せましたが、オレンジ色でひたすら点滅してるだけでなぜ認識しないんでしょうか。

  • MCI32.ocxがあるのにMCI32.ocxが無い・・・?

    MCI32.ocxがあるのにMCI32.ocxが無い・・・? とあるVisualBesic6.0にて製作されたフリーソフトを使っているのですが管理者としてプログラムを実行すると何故かMCI32.ocxがあるにも関わらず 『コンポーネント'MCI32.ocx'が適切に登録されていません。ファイルが存在しないかあるいは不正です』 とエラー文が出てきて強制終了してしまいます。 管理者としてではなく普通に起動したらそのエラーは出ないのですが今度は他のファイルから読み込む時に 『実行時エラー'75' パス名が無効です。』 と出てきてしまいます。 この場合どうすれば良いのでしょうか……? OSはvistaです

  • CD/DVDドライブが起動しません・・・

    CD/DVDドライブが起動しません・・・ DELLのデスクトップパソコン(ウィンドウズ7)と同時に、TVチューナーとプリンターを購入しました。 早速、ドライバーのインストールをしようとしてCD-ROMをトレイにセットしました。 説明書のとおり、「スタート」→「コンピューター」を開いても、何も反応しません。CDのアイコンも現れません・・・ いろいろと試しましたが、どうしてもCDが起動しません。 ためしに、普通のCD-R(デジカメ撮影の写真を保存したもの)を見ようとしても、開きません。 なぜでしょう・・・ どんな原因がありますか? 解決方法をお教えください・・・ よろしくお願いいたします・・・。

専門家に質問してみよう