Pull to refresh

Пишем свой плагин для Windows Media Center. Часть 1

Reading time3 min
Views2.4K
Здравствуй, хабра-сообщество!

Небольшое лирическое отступление


В этот замечательный день всех тех, кому не безразличны такие слова как разработка, код, компиляция и отладка, тех кто в данный момент набирает свою юбилейную 100 миллионную строку кода и тех у кого успешно скомпилировался и запустился первый в жизни «Hello, World!» хочу поздравить с профессиональным праздником. Желаю вам поменьше багов, быстрых компиляторов, взаимопонимания с дебаггером и самое главное, чтобы рядом были люди способные по-достоинству оценить Ваш труд!

А теперь — начнем


Недавно я начал писать свое приложение под WMC.
Заниматься переводом и цитированием SDK скучно и не интересно.
Поэтому сегодня я опишу пошагово создание простого плагина.
Давайте попробуем написать простенькие аналоговые часы.


Что нам нужно?


  1. Windows с установленным приложением MediaCenter (Я использую Windows 7 ultimate rtm)
  2. Microsoft Visual Studio (Приводить примеры буду для версии 2008)
  3. Microsoft MediaCenter SDK (Здесь и далее ориентируемся на версию 6.0)

Установка


Загрузить SDK можно по этому адресу.
SDK устанавливается после установки Visual Studio.
Примеры, входящие в комплект разработчика, находятся в папке %Program Files%\Microsoft SDKs\Windows Media Center\v6.0\Samples.

Создаем простейшее пустое приложение по шаблону


Запускаем Visual Studio.
Файл -> Создать -> Проект -> Новый проект

Если установки и интеграция SDK прошла успешно, то в дереве типов вы без труда найдете ветку Windows Media Center.
В качестве языка разработки я выбрал C#.

Выбираем шаблон Windows Media Center Application — Fundamental.
Даем нашему проекту имя, например habraClock.
Нажимаем Ок.

Что перед нами?


Думаю, что интерфейс Visual Studio отдельно описывать не надо, мы все и так с ним прекрасно знакомы.
Давайте лучше посмотрим что мы видим в обозревателе решений.

В папке Code находится файл Launch.cs. В этом файле описан наш класс MyAddIn, наследующий интерфейсы IAddInModule, IAddInEntryPoint.
Процедура Launch реализует член интерфейса IAddInEntryPoint и является точкой входа. Именно она вызывается при запуске нашего приложения в Media Center.

Базовыми объектами навигации WMC являются страницы, описанные на xml-based языке разметки MCML.
Единственное, что будет делать в нашем примере процедура Launch — осуществлять переход на страницу Default, описанную в файле Default.mcml папки Markup.

Так же важными для нас файлами являются DevInstall.cmd в коре проекта и Registration.xml в папке Setup.
DevInstall.cmd нужен для регистрации нашей сборки в системе. Без выполнения этого действия ничего нового в приложениях WMC мы не увидим.
Чтобы зарегистрировать наш плагин, нужно запустить командную строку в режиме администратора, перейти в папку проекта, и запустить там
DevInstall.cmd /debug

Ключ /debug добавляется в том случае, если конфигурация сборки Debug. Если собирается конфигурация Release, то ключ добавлять не нужно.
Еще одним параметром запуска является /u. Ключ служит для удаления из системы информации о нашем плагине.

Для того чтобы не мучиться с большим количеством открытых окон я поступаю так — в свойствах проекта на закладке «События построения» в событие после построения я добавляю автоматическую регистрацию сборки. Соответственно Visual Studio запускается в режиме администратора.

Подписываем сборку


Для того, чтобы плагин запустился в WMC, его необходимо подписать.
В свойствах проекта заходим на закладку «Подписывание», ставим галочку «Подписать сборку» и выбираем файл snk с вашей подписью.
Если такого файла у вас еще нет, то создаем его, выбрав пункт «Создать» из выпадающего списка.
Собираем проект (F6).
Запускаем командную строку, чтобы получить токен открытого ключа сборки. В командной строке выполняем
%Program Files%\Microsoft SDKs\Windows\v6.0A\Bin\sn.exe -T [путь к нашему проекту]\Bin\Debug\habraClock.dll

На выходе получим строку вида
Маркер открытого ключа: 597ac92eb14461f4

Открываем файл Registration.xml в папке Setup и меняем там PublicKeyToken=insert_public_key_token_here на PublicKeyToken=597ac92eb14461f4
Собираем проект, устанавливаем DevInstall'ом (если, конечно, вы не прописали автоматическую установку по моему рецепту).

Любуемся результатами нашего труда


Запускаем Media Center.
Если мы все сделали правильно, то на странице «Приложения» увидим в числе прочих и наш habraClock.


После его запуска на экране появится содержимое файла Default.mcml, а именно — строка с текстом Hello.


Заключение


Сегодня мы научились создавать, подписывать и регистрировать приложение для Windows Media Center.
На этом я хочу закончить первую часть статьи.
И, пока я занимаюсь ее продолжением — небольшое домашнее задание.
Поскольку сам я ну совершенно не дизайнер — придумайте и поменяйте стандартныю картинку приложения, на что-то более вменяемое и ассоциирующееся с хабром.

Жду ваших предложений, пожеланий, критики.

2009 lnking. Любое использование материалов данной статьи за пределами хабра разрешены с обязательным указанием источника.
Tags:
Hubs:
Total votes 48: ↑31 and ↓17+14
Comments9

Articles