最近のトラックバック

2017年9月
          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

Google AdSense2

« VLCメディアプレイヤーでのマウスホイールによるシーク操作 | トップページ | 不安定だったWindows 10の安定化 »

外部アプリを起動するWMP用 Plugin 「WmpExecApp Plugin」

外部アプリを起動するWindows Media Player plugin 「WmpExecApp Plugin」の紹介です。

このプラグインを使うと、Windows Media Player上の「特定のショートカットキー」、「マウスジェスチャー」「WMPのイベント」などから、外部アプリケーションをパラメーター指定して起動する事ができます。

例えば、「エクスプローラなどのファイラーと連動」「Mp3tagなどの属性エディタと連動」「自作したVBScriptを呼び出す」等ができるようになります。

Inittabsk


ダウンロード

download

※Google Chromeでダウンロードする場合、「危険を及ぼす可能性があります」という警告メッセージがでますが、無視して「継続」を選択してください。

<初回リリース>
2015/08/28

<最終リリース>
2015/09/10
※変更履歴は、ページの後方にあります。

<動作環境>
Windows Media Player 11以降(のはず)
32bit版のみ

※主な開発・テストは、Windows 8 + Windows Media Player 12で行っています。
※簡易的な確認では、Windows XP + Windows Media Player 11で動作することを確認しています。
※SDKが対応していない関係で、Windows Media Player 10以前は動かないハズです。




スクリーンショット

ショートカットキーの設定
Inittabsk_2

マウスジェスチャーの設定
Inittabges

イベントの設定
Inittabevt

置換パラメータのヘルプ
Inittabparam

about
Inittababutjpg

 


インストール・アンインストール

■インストール

  1. Windows Media Playerを起動していたら、終了します。
  2. ダウンロードファイルを解凍し、WmpExecAppPlugin.msiを取り出します。
  3. WmpExecAppPlugin.msiをダブルクリックするとインストーラーが起動します。
    ※Windows Smart Screenが立ち上がる場合は、WmpExecAppPlugin.msiファイルを右クリック→プロパティから、「ブロックの解除」を選択してから、本手順を再挑戦してください。
  4. インストーラーの指示に従ってインストールしてください。
  5. Windows Media Playerを起動します。
  6. 初回起動時は、プロパティ画面が表示されますが、ON、Cancel、×のいずれかのボタンを選択し、画面を閉じてください。
    ※もちろん、この段階で設定を行い、OKボタンを押しても構いません。

■アンインストール

  1. コントロールパネル→プログラムの削除を選択します。
  2. WmpExecAppPluginを選択し、アンインストールを行います。

■バージョンアップ

  1. 最終更新日が新しいファイルをダウンロードします。
  2. 上記の手順でアンインストールします。
  3. 上記の手順でインストールします。

 


設定および仕様

■プロパティ画面を開く

Windows Media Playerのオプション画面から設定を行うプロパティ画面を開きます。
Settingwmpopt

Inittabsk_3


■基本設定(共通:ShortcutKey、Gesture、Event)

  • 該当の操作の、Tool PathにExeファイルなどのパスを記述します。(必須)
  • Exeファイルにパラメータを渡す場合、Parametarに設定します。(任意)
  • 設定についての覚書があれば、Commentに記述します。(任意)
  • Tool Pathを空白にした場合、その操作・イベントは無視されます。
  • Tool PathにはExeファイルのほかに、VBScriptやDosバッチなどが設定できます。
    ※上記以外のファイルでも、関連付けされているファイルであれば、他の形式でも大抵設定できます。
  • [...]ボタン:ファイルを開くダイアログ。
  • [M]ボタン:入力補助メニューの表示。
  • [C]ボタン:設定のクリア。
  • [T]ボタン:設定のテスト。
  • Parametarに、$fileなどの特殊なパラメータを設定すると、実行時にWMP側から値を渡します。
パラメータ 概要
$file 再生中のメディアのファイルパスを渡します。
$directory 再生中のメディアのフォルダパスを渡します。
$filename 再生中のメディアのファイル名(拡張子なし)を渡します。
$extension 再生中のメディアの拡張子を渡します。
$duration 再生中のメディアの再生時間を渡します(秒単位、小数点以下あり)。
$durationms 再生中のメディアの再生時間(ミリ秒単位、小数点以下なし)を渡します。
$durationstring 再生中のメディアの再生時間(00:00:00形式)を渡します。
$position 再生中のメディアの現在の経過時間(秒、小数点以下あり)を渡します。
$positionms 再生中のメディアの現在の経過時間(ミリ秒、小数点以下なし)を渡します。
$positionstring 再生中のメディアの現在の経過時間(00:00:00形式)を渡します。
$title、$album、$artist、... 再生中のメディアのタグ情報(タイトル、アルバム、アーティストなど)を渡します。
利用可能なタグ情報は、「Parameter help」タブを参照してください。
#title、#album、#artist、... 再生中のメディアのタグ情報(タイトル、アルバム、アーティストなど)をURLエンコードして渡します。
利用可能なタグ情報は、「Parameter help」タブを参照してください。
$playlistname 現在のプレイリストの名前を渡します。
$index0 再生中のメディアが、現在のプレイリストの何番目にあるかの値を渡します。
(0始まり)
$index1 再生中のメディアが、現在のプレイリストの何番目にあるかの値を渡します。
(1始まり)
$info_s 再生中のメディアの属性情報を記載したファイル(スペースで整形)を作成し、そのファイルパスを渡します。
$info_t 再生中のメディアの属性情報を記載したファイル(タブ区切り)を作成し、そのファイルパスを渡します。
$m3u 現在のプレイリストから、m3u形式のファイルを作成し、そのファイルパスを渡します。
$m3u8 現在のプレイリストから、m3u形式(UTF-8)のファイルを作成し、そのファイルパスを渡します。


■個別設定:Shoutcut Keyタブ

以下のショートカットキーに割当が可能です。

Ctrl + Shift + 1~9  (Ctrl + Shift + 0は、OSにより割当済みの可能性があるため未対応)
Ctrl + Shift + Z

※ショートカットキーの任意の変更には対応していません。

■個別設定:Gesutureタブ

マウスの右ボタンの上下左右のマウスジェスチャーに割当が可能です。

※コンテキストメニューの非表示に完全対応ができませんでした。
この為、本処理の実行と同時にコンテキストメニューが表示されてしまうことがありますが、この件は仕様として扱います。

■個別設定:Eventタブ

以下のイベントが発生すると、本プラグインの設定内容が実施されます。

イベント 概要
WMP起動(プラグイン起動) 本プラグインの起動時に呼ばれます。
本プラグインが有効な場合は、WMP起動直後にプラグインも起動するため、WMPの起動時に呼ばれるとも言えます。
WMP終了(プラグイン終了) 本プラグインの終了時に呼ばれます。
本プラグインが有効な場合は、WMP終了と同時にプラグインも終了するため、WMPの終了時に呼ばれるとも言えます。
メディアオープン WMPのメディア(曲)が開かれた時に、呼ばれます。
例)
・停止状態から再生ボタンを押し、曲を開始したとき。
・前へ、次へのボタンを押したとき。
・曲が終わり、次の曲が開始したとき。
メディアの終了3秒前 再生中の曲がラスト3秒前になった時に、呼ばれます。
※倍速モードだとイベントが取得できない事もあります。

※起動、終了イベントでは、$fileなどの特殊パラメーターは受け取れません。これは、WMPが起動していても、メディアが開かないとメディアに関するパラメータが取れない。または、WMPが終了していて、メディアが閉じていてメディアに関するパラメータが取れない、等の現象があるためです。このため、起動、終了イベントでは特殊パラメータは無視するように内部設計されてます。

 


使用例

設定
再生中のメディアのフォルダをエクスプローラから開く(ファイルも選択) ■ToolPath:
explorer.exe
■Parameter:
/select,"$file"
再生中のメディアの情報をメモ帳で開く。 ■ToolPath:
notepad.exe
■Parameter:
"$info_s"
再生中のメディアの情報をもとに歌詞ファイル(lrc)をメモ帳で開く。 ■ToolPath:
notepad.exe
■Parameter:
"$directory\$filename.lrc"
再生中のメディアの情報をもとにfolder.jpgをペイントで開く。 ■ToolPath:
mspaint.exe
■Parameter:
"$directory\folder.jpg"
再生中のメディアの情報をクリップボードに張り付ける。 ■ToolPath:
cmd.exe
■Parameter:
/c "clip < "$info_t""
再生中のメディアのファイル名をリネームする。 ■ToolPath:
cmd.exe
■Parameter:
/c "rename "$file" "$tracknumber_$title.$extension""
MCP-HCに対し、再生中のメディアのファイルパスとミリ秒を渡し起動する。 ■ToolPath:
~\mpc-hc.exe
■Parameter:
"$file" /start $positionms
MCP-HCなどの別のプレイヤーに対し、WMPで再生中のプレイリストをm3u形式で作成し、渡して起動する。 ■ToolPath:
~\mpc-hc.exe
■Parameter:
"$m3u8"

※メディアプレイヤーによっては、$3u8(UTF-8)に対応していない対応のプレイヤーがあります。
この場合、$m3u8ではなく$m3u(システムの文字コード..日本ならCP932とかShift-JIS)を利用してみてください。
Mp3tagに対し、WMPで再生中のメディアのファイルの親フォルダを渡して起動する。 ■ToolPath:
~\Mp3tag.exe
■Parameter:
"$directory"
ffmpegをつかい、再生中のメディアをmp4形式に変換する。 ■ToolPath:
~\ffmpeg.exe
■Parameter:
-i "$file" "c:\\temp\\$filename.mp4"
自作のVBScriptファイルに対し、再生中のメディアのファイルパスを渡し起動する。 ■ToolPath:
~\MyScript.vbs
■Parameter:
"$file"
自作のバッチ(*.bat)ファイルに対し、再生中のメディアのファイルパスを渡し起動する。 ■ToolPath:
~\MyBatch.bat
■Parameter:
"$file"
タイトルとアーティストでググる。 ■ToolPath:
(ブラウザのインストール先)\ブラウザ.exe
■Parameter:
http://www.google.com/search?q=#artist+#title

 

 


開発の経緯

WMPスキンsm02というものを開発し、別ページで公開しているが、WMPのスキン開発は制約がとても厳しい状況です。
特に外部アプリ操作は完全にできないという問題にフラストレーションが溜まっていました。

そんな中、スキン開発では実装不可能な「起動中のメディアのフォルダをエキスプローラから開きたい。更にはエキスプローラ上では該当ファイルを選択したい。」という要望がありました。

※ちなみに、私が主に使っているファイラーは、Windows標準のエクスプローラではなく、「秀丸ファイラーClassic」なので、フォルダを開く際には秀丸ファイラーを使いたかったりする。

少し調べてみたら、プラグインならばスキンと連動こそはできないもののショートカットキーとして実装できそうと判断しました。

※「wmpkeys WMP global hot keys plugin」というプラグインから着想。でも本機能ではグローバルキーとかキーの変更とかは対応していないんだけどね。
というか、前述のWMPスキンsm02では、任意指定のマウスジェスチャーっぽい事が出来るし...。
個人的にはショートカットキーよりもマウスジェスチャーの方を重視しているという事もある。

実際作ってみたが、「特定のアプリでフォルダを開く」以外にも、色々と出来るのでは?と思い色々と機能を色々と拡張をしてみました。

※サラッと「作ってみた」と書いているが、忘れかけているWin32/C言語/C++やActiveX/Threadの知識が必要だったし、SDKの仕様は殆どネットで見つからないし、四苦八苦して作っているが...。


因みに、プラグインは日本語ではなく英語の表記にしてみました。
WMPスキンsm02は日本Onlyのアプリにしたけど、本アプリはsm02よりも小規模な開発だったから海外での需要も考慮して…。
とはいえ英語のサイトを作る気力はOです。
誰か代わりに紹介サイトを作ってくれないかなぁ~。

ってな感じで、開発秘話(?)でした。




免責事項

本プラグインの利用による、あらゆるトラブル・障害などについて、提供者および関係者は一切の責任を負いません。
本プラグインを利用するのと同時に、上記事項に同意したものとみなします。




変更履歴

  • 2015/09/10版
    1. 不具合の修正。
    2. プロパティ画面のaboutタブに情報の追加。
  • 2015/09/04版
    1. アプリ側から特殊パラメータを変換する際に""で変換値を括らなくした。
    2. sec、msパラメータの設定名をpositionに変更した。
    3. 特殊パラメータを大幅に増加。
    4. テストボタンや登録候補のメニュー等、登録をサポートする各種機能を追加および見直し。
    5. マウスジェスチャー等の動きの補足精度の向上。
    6. その他、色々と拡張および見直し。
  • 2015/09/01版
    1. 不具合の修正。
  • 2015/08/28版(初回版)
    1. 初回リリース版の公開。

« VLCメディアプレイヤーでのマウスホイールによるシーク操作 | トップページ | 不安定だったWindows 10の安定化 »

windows」カテゴリの記事

パソコン・インターネット」カテゴリの記事

趣味」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/532391/62172227

この記事へのトラックバック一覧です: 外部アプリを起動するWMP用 Plugin 「WmpExecApp Plugin」:

« VLCメディアプレイヤーでのマウスホイールによるシーク操作 | トップページ | 不安定だったWindows 10の安定化 »

Google AdSense


  • ---

Amazon ウィジェット

  • ウィジェット

@niyo_naのツイート

無料ブログはココログ

Google Analytics