![]() |
![]() ![]() |
•
Продукты • Где купить • Пользователям • Для бизнеса • Мы на связи |
null null null
|
Использование пульта дистанционного управления в Windows Это перевод с английского статьи с сайта Microsoft (MSDN) об механизме использования пультов дистанционного управления в Windows, который предусмотрен в Windows Media Center Edition. Статья рассчитана, в первую очередь, на разработчиков, но будет интересна для поверхностного чтения и другим людям. Анализ возможностей Windows по работе с пультами ДУ, основанный на этой статье, выйдет в ближайшее время. Оригинал статьи находится по адресу http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwmt/html/remote_control.asp Введение Начиная с Microsoft Windows XP Service Pack 1, Windows XP Professional и XP Media Center Edition, операционная система поддерживает ввод через инфракрасный пульт дистанционного управления. Это расширяет возможности персонального компьютера как части домашней развлекательной системы. Эта статья рассказывает о том, как система дистанционного управления может быть использована разработчиками. Она содержит следующие разделы:
Система ввода через ик связь На рисунке показан пульт, разработанный для Медиа-Центра (Media Center PC).
Внешний вид пульта может зависеть от производителя. Тем не менее, основная фунциональность не меняется. Пульт управления взаимодействует с ик приёмником, который состоит из следующих частей:
Также ик приёмник требует драйвер, отвечающий спецификации "Plug and Play". Базовая версия драйвера устанавливается с операционной системой Windows, которая поддерживает ик приёмник для пульта ду. Соединительный кабель позволяет пользователям размещать ИК датчик около монитора так, что они могут целиться пультом в монитор при управлении компьютером. Дополнительно ик приёмник может быть вмонтирован производителем в переднюю панель системного блока. Сигнал от пульта ду обрабатывается следующим образом:
Кнопки пульта управления Внешний вид пульта зависит от производителя, но тем не менее все пульты имеют стандартный набор кнопок, которые можно разделить на четыре группы: Навигационные кнопки:
Управление проигрыванием:
Общее управление:
Кнопки для ввода данных:
Вдобавок к обязательным производитель может предусмотреть дополнительные кнопки, которые также распадаются на четыре категории. Программы не должны полагаться на наличие этих кнопок. Кнопки быстрого доступа:
DVD кнопки:
Кнопки цифровой клавиатуры:
Специальные кнопки, предусмотренные производителем:
Получение команд пульта Этот раздел содержит параметры windows-сообщений, сгенерированных драйвером пульта ду, и способ их обработки, чтобы ваша программа адекватно реагировала бы на нажатия. Следующая таблица показывает windows-сообщения и кнопки клавиатуры, соответствующие обязательными и дополнительным кнопкам пульта ду.
Кнопки, которые генерируют сообщения WM_INPUT, определены в соответствии со спецификацией HID (HID, устройства для взаимодействия с пользователем). Следующая таблица показывает соответствие HID этим кнопкам.
Для того, чтобы получать сообщение WM_INPUT, приложение сначала должно зарегистрировать устройство, от которого оно хочет получать данные. Это можно сделать с помощью функции RegisterRawInputDevices из Win32 API. Каждая структура RAWINPUTDEVICE , переданная этой функции, определяет тип использования. Следующий пример на С++ регистрирует устройство для получения ввода с кнопок с кодовой страницы, определённой производителем, и с кодом использования 0x88:
Чтобы определить событие, которые вызвало сообщение WM_INPUT, приложение должно разобрать данные, переданные в оконную процедуру как параметр lParam. Если вы используете Microsoft .NET Framework, вам надо реализовать WndProc для обработки сообщений. WndProc — это член класса NativeWindow в пакете System.Windows.Forms. Перегруженный метод вызывается каждый раз, когда новое сообщение добавлено в очередь сообщений. До выхода из метода надо вызвать перегруженный метод класса-предка, чтобы гарантировать корректную обработку всех сообщений. Следующий код на C# демонстрирует, как обрабатывать WM_KEYDOWN сообщения:
При инициализации главной формы надо создать экземпляр класса Form1Window и присвоить его значение главной форме.
Обработка команд пуск и пауза Кнопки "пуск" и "пауза" на пульте ду генерируют разные команды, APPCOMMAND_MEDIA_PLAY и APPCOMMAND_MEDIA_PAUSE, соответственно. К тому же, некоторые клавиатуры используют одну и ту же кнопку для переключения между пуском и паузой, генерируя APPCOMMAND_MEDIA_PLAY_PAUSE сообщение. Приложения должны уметь обрабатывать сообщения как от пульта ду, так и от клавиатуры, отслеживая состояние воспроизведения и реагируя надлежащим образом. Следующая таблица показывает состояние воспроизведения, команды с клавиатуры и пульта и желательное действие, которым приложение должно отвечать на сообщения.
Дополнительно За дальнейшей информацией о пользовательских устройствах (HID) и структурами HID-данных, обращайтесь к домашнему сайту протокола USB (http://www.usb.org). Чтобы узнать больше о том, как работать с HID данными в составе WM_INPUT сообщений, смотрите статью "Низкоуровый ввод" в MSDN.
Чернорук Павел, pavel |
Главная l Продукты | Где купить | Пользователям | Предложения для бизнеса | Мы на связи | Мешки-сетки для хранения спальников |
|