0

Win2K (以降) では、Virtual-Key VK_LAUNCH_MEDIA_SELECT を送信することで、プレーヤーを起動できます。

複数のプレーヤー ソフトウェアがインストールされている場合、どのプレーヤー ソフトウェアが起動するかを判断する方法は?

サンプル VBS コード:

Wscript.CreateObject("Wscript.Shell").Sendkeys chr(&h88b5)

http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx

http://msdn.microsoft.com/zh-cn/library/dd375731

VK_LAUNCH_MEDIA_SELECT
0xB5
Select Media key
4

3 に答える 3

1

フォアグラウンドウィンドウは、WM_APPCOMMANDメッセージに応答して必要な処理を実行できます。メッセージを処理しない場合は、シェルフック(HSHELL_APPCOMMAND)がメッセージを処理します。メッセージを処理するフックがない場合、WindowsはレジストリのAppKeyキーをチェックします。(Process Monitorを使用して、特定のキーを押したときの番号を見つけることができます)

于 2012-05-03T22:11:34.890 に答える
1

ありがとう、マイク・クワンの返事。

多くの設定をテストすることにより、さまざまなオーディオファイルに関連付けられたプログラム. 最終決定。これは、どのプログラムに関連付けられているCDA (CD オーディオ)ファイルによって異なります。

CDA (CD オーディオ) ファイルの既定の関連付けをメモ帳、ペイント、またはその他のプログラムに設定場合でも、同じ仮想キーを送信して、対応するプログラムを開くことができます。

于 2012-05-02T17:25:21.557 に答える
1

VK_LAUNCH_MEDIA_SELECTWM_APPCOMMANDは実際にシステムによって受信され、 with lParamasに変換されAPPCOMMAND_LAUNCH_MEDIA_SELECTます。したがって、理論的には、このハンドラーを実装するプログラムはすべて起動できます。このページ(古いものではありますが) には、以下をリッスンするデフォルトのアプリケーションがリストされていますWM_APPCOMMAND

  • インターネットエクスプローラ
  • Windows ヘルプ
  • DVDプレーヤー
  • CDプレーヤー
  • メディアプレーヤー
  • ボリューム コントロール システム トレイ アプレット

明らかに、実際に適用できるのはそのうちのほんの一部ですAPPCOMMAND_LAUNCH_MEDIA_SELECT

ただし、翻訳メカニズムが実際にどのように機能するかはわかりません。WM_APPCOMMANDすべてのアプリケーションが翻訳されたメッセージを受け取るわけではないようです。私のキーボードで、送信するボタンを押してみましたVK_VOLUME_UP。ボリューム コントロール システム トレイ アプレットによって処理されるため、ボリュームは期待どおりに上がります。notepad.exeただし、 Spy++ でインスタンスを開き、そのメッセージを監視しました。フォアグラウンドにいてもメッセージを受信しませんでした。不思議なことに、フォーカスがある限り再生/一時停止ボタンが押された場合にVK_MEDIA_PLAY_PAUSE受信されます。でテストしますが、実際にはどのボタンに対応するのか (またはキーボードにあるのかどうか) はわかりません。WM_APPCOMMANDnotepad.exeVK_LAUNCH_MEDIA_SELECT

于 2012-05-02T16:06:17.373 に答える