я не знаю лучшего названия для вопроса, но я `проиллюстрирую моя проблема.
Я работаю над приложением, которое действует как mp3-плеер, оно использует мультимедийные клавиши для воспроизведения/паузы, остановки песни, я на самом деле заставил его работать, но FormApplication должен быть наверху [Focused]
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.
Я много искал в Интернете, но большинство из них дают мне способ, похожий на тот, который я использую.
Заранее большое спасибо за помощь.