10

質問のより良いタイトルはわかりませんが、問題を説明します。

私はmp3プレーヤーのように動作するアプリケーションに取り組んでいます。マルチメディアキーを使用して再生/一時停止、曲の停止を行います。実際に動作させましたが、FormApplicationが一番上にある必要があります[フォーカス]

protected override void WndProc(ref Message msg)
{
    if (msg.Msg == 0x319)   // WM_APPCOMMAND message
    {
        // extract cmd from LPARAM (as GET_APPCOMMAND_LPARAM macro does)
        int cmd = (int)((uint)msg.LParam >> 16 & ~0xf000);
        switch (cmd)
        {
            case 13:  // APPCOMMAND_MEDIA_STOP constant
                MessageBox.Show("Stop");
                break;
            case 14:  // APPCOMMAND_MEDIA_PLAY_PAUSE
                MessageBox.Show("Play/Pause");
                break;
            case 11:  // APPCOMMAND_MEDIA_NEXTTRACK
                MessageBox.Show("Next");
                break;
            case 12:  // APPCOMMAND_MEDIA_PREVIOUSTRACK
                MessageBox.Show("Previous");
                break;
            default:  
                break;
        }
    }
    base.WndProc(ref msg);
}


private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    Message m = new Message();
    m.Msg = e.KeyChar;

    WndProc(ref m);
}

だから私がする必要があるのは、プログラムがバックグラウンドにあり、トップまたはフォーカスされていない場合でも、winampやWindows Media Playerの動作と同じように、マルチメディアキーを動作させることです。

私はインターネットでたくさん検索しましたが、それらのほとんどは私が使用しているものと同様の方法を私に与えてくれます。

よろしくお願いします。

4

1 に答える 1