• ベストアンサー

MediaPlayerの実行方法

お世話になります。 Visual Studio 2005を用いてWinAPIの勉強をしています。 Win32 APIで WindowsMediaPlayerを起動するにはどうしたらいいのでしょうか? 例えば、メインウインドウを作成し、スタートボタンを作成して、 クリックすると指定しているファイルがWMPで再生する動作です。 Windowフォームでは、Process::Start("wmplayer.exe",ファイル名); を指定して動作しましたが、Win32アプリでは出来ません。 どうぞよろしくお願い致します。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★アドバイス ・既に API の関数名が出ていますがもう少し補足します。  API でプログラムを実行するには  (1)WinExec()  (2)ShellExecute()、ShellExecuteEx()  (3)CreateProcess()  の3種類あります。  少なくも私はこの3つを知っています。 ・(1)は最も手軽に利用できます。  ただし Win16 の API であるためお勧めできません。  いつ使えなくなるか分からないので。 ・(2)は Win32 の API でお手軽に利用できるタイプです。  WinExec() よりちょっと引数が多いですがこれならばプログラムだけではなく  URLアドレス(http://~)を第3引数に指定するとブラウザを起動して Web サイトを開く。  メールアドレス(mailto:~)を指定するとメーラーを起動してメールを送れるようになる。  とても便利です。 ・(3)も Win32 の API ですがちょっと使いこなすのに時間がかかりそうです。  でもこの関数ならば WaitForSingleObject() などと組み合わせればプログラムが終了する  まで制御が戻らない動作などが行えます。通常はプログラムを起動すると直ぐに呼び出し  元に制御が返されます。→WinExec()、ShellExecute()など。 使い方(C言語): char shell[] = "プログラム名"; char param[] = "引数文字列"; char work[] = "作業フォルダパス"; if ( (int)(INT64)ShellExecute(hWnd,TEXT("open"),shell,param,work,SW_SHOWNORMAL) < 32 ){  /* エラー処理 */ } その他: ・引数や作業フォルダパスが必要ない場合は NULL を指定します。  また第2引数に TEXT("open") を指定するのと NULL を指定するのとで処理がちょっと違います。  NULL の場合はショートカット(*.lnk)のファイルも正常に起動できます。  TEXT("open")ではショートカット(*.lnk)ファイルではプログラムを起動できません。 参考文献(WinExec): http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdllpro/html/_win32_winexec.asp 参考文献(ShellExecute): http://www.sm.rim.or.jp/~shishido/shelle.html http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpshell/html/_win32_shellexecute.asp 参考文献(CreateProcess): http://www.sm.rim.or.jp/~shishido/cprocess.html http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdllpro/html/_win32_createprocess.asp 以上。

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

その他の回答 (1)

回答No.1

.NET Framework じゃなくてWin32 APIね? ShellExecute関数ってのがあるみたいですが、そういうことでしょうか? http://www.winapi-database.com/Program/Shell/ShellExecute.html

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

関連するQ&A