mciSendStringで2回目から失敗する

解決


sinya  2006-01-31 02:56:05  No: 129962

mciSendStringを使ってmidファイルを再生しようとしているのですが
2回目から失敗します。

mciCommand = "Open " & fName & " alias MIDI1"
Debug.Print mciSendString(mciCommand, vbNullString, 0, 0)
ここで、初回は0(正常終了)
2回目から289が返ります。
どこが悪いのかご教示お願いいたします。

Sub test(ByVal fName As String)
    mciCommand = "Open " & fName & " alias MIDI1"
    Debug.Print mciSendString(mciCommand, vbNullString, 0, 0)
    mciCommand = "Play MIDI1"
    Debug.Print mciSendString(mciCommand, vbNullString, 0, 0)
    mciCommand = "Stop MIDI1"
    Debug.Print mciSendString(mciCommand, vbNullString, 0, 0)
End Sub


sinya  2006-01-31 02:58:11  No: 129963

すみません。
環境は、EXCEL2002 VBAです。
よろしくお願いいたします


魔界の仮面弁士  2006-01-31 04:53:29  No: 129964

mciGetErrorString APIで、コード289について調べてみると、

『指定されたエイリアスはこのアプリケーションで既に使用されています。
  一意のエイリアスを使用してください。』

というメッセージになりますね。

デバイスにエイリアス(alias:別名)を割り当てた場合には、その後のコマンドで、
そのエイリアスをデバイスIDとして使用しなければならない事に注意してください。

# というよりも、openだけして、closeが無い点が微妙に気になる……。


sinya  2006-01-31 19:31:29  No: 129965

魔界の仮面弁士さん、有難うございます。

> # というよりも、openだけして、closeが無い点が微妙に気になる……。
あ!

  mciCommand = "Close MIDI1"
  Debug.Print mciSendString(mciCommand, vbNullString, 0, 0)

でした。

「開けたら閉めましょう」でした。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加