|
ひでさん、こんにちはぁ
>メディアプレイヤーを呼び出してある音(音楽)を
>10秒間だけだし、プレイヤーを終了(閉じたい)させたいのですが
>終了のしかたがわかりません
起動しているアプリケーションを終了させるにはAPIが一番手っ取り早いです。
こんな感じです。
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_CLOSE = &H10
Sub test3xp() 'winXp xls2002
Shell "C:\Program Files\Windows Media Player\wmplayer C:\NewStories.wma", vbHide
Application.Wait (Now + TimeValue("00:00:10"))
'Media Playerを終了
SendMessage FindWindow("WMPlayerApp", vbNullString), WM_CLOSE, 0&, ByVal 0&
End Sub
多分、メディアプレーヤ9でしか動作しません。
では次のバージョンに変わったらどうしましょう?
その都度改造するのも、手間ですよね。
方法はいろいろありますが、アプリケーションに依存しない技術ならMCIと言う物があります。
メディアプレーヤ7ぐらい以降が入っていれば、WMAファイルもMCIで再生できます。
(結果的にメディアプレーヤのライブラリを使っていますが、入り口が共通なので汎用性があります)
いまどきなら、メディアプレーヤコンポーネントを使う方法もあります。
ではではぁ
|
|