Захват медиа-ключей, когда приложение свернуто - PullRequest
8 голосов
/ 26 августа 2011

Я хочу предоставить опцию с медиаплеером, над которым я работаю, чтобы клавиши мультимедиа работали, даже когда они свернуты.Каков наилучший способ для захвата и обработки этих ключевых событий в C # без фокуса?Это вообще возможно?

Ответы [ 4 ]

6 голосов
/ 11 октября 2011

Я не думаю, что есть простой способ сделать это, но this (Использование оконных сообщений для реализации глобальных системных хуков в C #) проект может помочь.Я добавил ниже код

    _GlobalHooks.Keyboard.KeyboardEvent += (w, l) => 
    {
          this.LblMouse.Text = "KEY: " + w.ToInt32().ToString("X8") + " " + l.ToInt32().ToString("X8");
    };
    _GlobalHooks.Keyboard.Start();

в конструктор Form1 GlobalHookTest и смог отслеживать все события клавиатуры.

3 голосов
/ 11 октября 2011

Вы можете сделать это, но только с некоторыми глобальными перехватами - исходный код и подробности см.

РЕДАКТИРОВАТЬ:

ОСТЕРЕГАЙТЕСЬ, что некоторые медиа-ключи переводятся в APP_COMMAND сообщения Windows - поэтому вам следует подумать о том, чтобы перехватить их тоже.

ЕСЛИ вы хотите, чтобы ваш медиаплеер автоматически запускался при нажатии кнопки (СМИ) см. ссылки здесь .

1 голос
/ 13 октября 2011

Использование глобальных перехватов клавиатуры ( Обработка глобальных перехватов мыши и клавиатуры в C # )

Просто создайте перехват при запуске приложения / формы.Вы можете установить KeyEventHandlers для глобального ключа вверх, вниз и нажмите события.Затем вы можете проверить, является ли это комбинация клавиш, которую вы ищете.

0 голосов
/ 12 октября 2011

Для этой задачи я реализовал это решение:

http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

...