24
2013
PHPでWinアプリを終了させるテスト。
2013/04/16のエントリや2013/04/17のエントリで、プレイヤーの
起動について記述しましたが、実装して使ってみたところ、
ある問題に気付きまして。
実験ではaviやmp4等の動画は「GOM Player」で、DVD(ISOファイル)は
DAEMON Tools Liteにマウント後Power DVDで閲覧しているのですが、
DVDばかり若しくは動画ばかり(つまり同じプレイヤーを使うもの)を
観ている分には問題ないものの、例えば動画を再生したが途中で
DVDを観ようとすると、GOM Playerが起動したままDVDが再生して
しまう訳でして。これは、せめて停止するボタンが欲しいな…と
ちょっと調べてみたら、PHPの関数にwin32_ps_list_procsなるものが
あるのを発見。これを使って実装してみました。
【下ごしらえ】
まず、php_win32psを有効にします。調らべていたら、pecl4winからwin32_ps_list_procsを
ダウンロードして…と書いてあるサイトが多かったのだが、サーバダウンしているのか
サイトにアクセスできず。改めて自分の環境(C:\xampp\php\ext\下)をみてみたら、
win版XAMPPを入れたからか既に「php_win32ps.dll」が存在してたので、これを使えるように
再設定するだけで済みました。
「C:\xampp\php\php.ini」の中にある「;extension=php_win32ps.dll」を探して
文頭の「;」を削除後、apacheを再起動すれば完了です。
【作り方】
前述の通り、今回はaviやmp4等の動画はGOM Playerを、DVDはPower DVDを使って
閲覧している前提で説明します。その他の前提条件や環境等は、2013/04/16のエントリや
2013/04/17のエントリと同じとします。
「C:\xampp\htdocs\localmenu\」の下に、以下のファイルを作成してください。
(引数が入ってなかったり、1or2以外が入ってた場合は無言で終わってしまうので、
それが嫌な方はメッセージを表示させるなりしてください。)
作成ファイル:movieStop.php
<?php if(isset($_GET['mode'])) { switch ( $_GET['mode'] ) { case 1: $processName = 'PowerDVD.exe'; break; case 2: $processName = 'GOM.exe'; break; default: exit; } @$processList = win32_ps_list_procs(); foreach ($processList as $processArray) { $pid = $processArray['pid']; if (basename($processArray['exe']) == $processName) { `taskkill /f /PID $pid 2>&1`; } } } ?>
あとは、メニュー用のHTMLに以下のように記述すれば完了です。
・Power DVDを停止させるボタンを設置する場合
<a href="./movieStop.php?mode=1" target="_blank">Power DVD 停止</a>
・GOM Playerを停止させるボタンを設置する場合
<a href="./movieStop.php?mode=2" target="_blank">GOM Player 停止</a>
細君からもツッコミが入ったのですが、何だかもうリモコンみたくなってきましたね;
【参考サイト】
》PHP Manual – win32_ps_list_procs
》PHP マニュアル – win32ps 関数
》PHP WELT.NET – win32ps関数
Similar Posts
- GOM PlayerとXAMPPでHTMLから動画を再生させるテスト。
- CD-ROM消失。
- DAEMON Tools LiteとXAMPPでHTMLからISOを再生させるテスト。
- VLC for android でローカルネットワークに接続すると、このフォルダは空ですと表示される
- 仔ぬこの居る生活。(22日目)
Related Posts
月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |