Я создаю медиаплеер в WinForms, С#. Я хочу ответить пользователю, нажимающему мультимедийные клавиши на клавиатуре, используя следующий код, который можно найти по всему Интернету:
public const int WM_APPCOMMAND = 0x0319;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_APPCOMMAND)
{
switch ((int)m.LParam)
{
case 14: // MediaPlayPause
TogglePlayPause();
break;
default:
break;
}
}
base.WndProc(ref m);
}
Но это не сработает. Он просто никогда не получает ключевую команду. Медиа-ключи работают с любым другим приложением (и метод TogglePlayPause()
тоже работает).