• 締切済み

VB 動画再生する際にカレントディレクトリを指定して再生

私は今、あるアプリケーションを作っているのですが、オープニングムービーを再生したいと思っております。 開発環境:Visual studio 2008 言語:VB 現在はサイト等で検索し、 Private Declare Ansi Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer Const stCurrentDir As String = CurDir$() Const FileName As String = stCurrentDir & """\openning.mpg""" という感じでファイルの場所を指定しているのですが、どうもconstがネックです。 これをdimで指定すると再生されないのです。 だからと言ってconstでやると、普通にカレントディレクトリを指定せずすべて指定するとできるのですが、上のようにカレントディレクトリを求めると、定数式が必要と出てしまいます。 どうにかうまくいく方法等ありませんでしょうか? よろしくお願いいたします!

みんなの回答

  • dinowave
  • ベストアンサー率48% (20/41)
回答No.3

前回回答した者ですが、自分はうっかり FileName を「""" & stCurrentDir & "\openning.mpg"""」と書いたのですが、正しくは「"""" & stCurrentDir & "\openning.mpg"""」で、始めの「"」が一つ抜けていました(汗 単純なミスなので、既にこれが解決済みでしたら申し訳ないです……

taikoshu1
質問者

補足

そのようにやってみたのですが、やっぱり定数式が必要と出てしまいます。

  • dinowave
  • ベストアンサー率48% (20/41)
回答No.2

一つ気になってるのですが、FileName の部分 stCurrentDir & """\openning.mpg""" は正しいのでしょうか? 仮に stCurrentDir が「C:\Documents and Settings\xxx\デスクトップ」だった場合 FileName は「C:\Documents and Settings\xxx\デスクトップ"\opening.mpg"」って出力され、ファイルパスの間に「"」が入って来ます。 書くならば FileName を """ & stCurrentDir & "\openning.mpg""" のようにするべきだと思うのですが……

taikoshu1
質問者

補足

""" & CurDir$() & "\openning.mpg""" とやってみましたが、 最後の"""の部分で「ステートメントの終わりを指定してください」 と出てしまいました。 いろいろ試してみたのですが、なかなかうまくいきません。 よろしくお願いいたします。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

mcisendstring使用だとファイルパスに空白があると 失敗してしまいますね。 10年近く前にかなりいじってみたことがありますが ""などのつけ方でうまくいくのだったか 忘れてしまいました。今日私が試行した限りでは すべて失敗しました。  curdirのように変化するパスにせず、 空白を含まない固定パスになるフォルダーに 動画を置いておくようにするのでは都合が悪いのでしょうか?

taikoshu1
質問者

補足

その課題は提出するものなので、必然的にカレントディレクトリは変化してしまうと思い、カレントディレクトリを指定しなければならないと思っております。

関連するQ&A