Так, я не помилився, мова піде про запуск Kodi (так тепер називається старий добрий XBMC). Що такого може бути в звичайному запуску простий програми для Windows? Ну добре, нехай не простий, нехай відмінною програми. Загалом, у чому підступ? А фішка в тому, що я збираюся розповісти про незвичайний спосіб запуску - за допомогою пульта дистанційного керування. Але спочатку, як зазвичай, трохи передісторії.
Як HTPC у мене виступає немолодий уже Acer Revo RL100. Це досить цікава машинка. Ні, вона і на момент своєї ранньої юності не була топовою моделлю - з точки зору продуктивності. Але в ній були реалізовані дуже цікаві рішення. Хоча, власне, чому "були"? Вони (рішення) своєї актуальності не втратили і зараз.
Один із критеріїв - зовнішній вигляд - носить дуже суб'єктивний характер. На мій погляд, комп'ютер виглядає досить стильно, що, з огляду на його призначення - перебувати поруч з телевізором, зовсім не зашкодить. До того ж, Acer можна розмістити як горизонтально, так і вертикально, що дозволяє оптимально використовувати простір, якого, як правило, не вистачає.
Acer Revo RL100 можна розташувати і вертикально і горизонтально
Іншою цікавою особливістю цього пристрою, напевно, найзначнішою, є пульт дистанційного керування. Хоча я не знаю, чи правильно цей компонент називати саме пультом. Ні, дистанційне керування, безперечно, їм забезпечується, але ось по функціоналу він значно випереджає звичайні пульти.
Пульт Acer отримав назву RevoPad
У мене майже такий же пульт, як і на картинці, тільки він ще і русифікований - поруч з англійськими літерами розміщуються російські. Розкладка дуже схожа на стандартну розкладку русифікованої клавіатури, за винятком декількох букв - все-таки ширина RevoPad-а невелика.
У чому ж полягає особливість цього пульта? Їх, насправді, кілька. По-перше, пульт забезпечений акумулятором. Для підзарядки його досить вставити до упору в відведений для нього спеціальне гніздо, яке розташоване під оптичним приводом DVD-RW. Акумулятора вистачає дуже надовго - пульт без підзарядки спокійно живе пару-трійку тижнів. По-друге, пульт працює в двох режимах: в одному він працює як сенсорна клавіатура, в іншому - як тачпад. Плюс, у нього є коліщатко. Якщо якийсь час не користуватися пультом, він переходить в режим очікування, ніж, власне, і пояснюється його вражаюча живучість. Вивести пульт з цього стану, як і перемкнути режим, можна за допомогою спеціальної кнопки зі світлодіодом.
Якщо чесно, цей пульт особисто мене влаштовує більше, ніж повністю. Єдине, що я з ним зробив, це запрограмував виклик Kodi (а раніше - XBMC) на спеціальну клавішу - на RevoPad-е є сенсорна клавіша із зображенням будиночка. З цієї клавіші спочатку викликалася програма для управління медіа контентом виробництва самого Acer.
Перепрограмувати цю кнопку на виклик Kodi виявилося зовсім не складно - відповідність комбінацій клавіш викликається програмами задається за допомогою утиліти з промовистою назвою Hotkey Utility, в її настройках для комбінації клавіш Ctrl + F12 я вказав шлях до виконуваного файлу Kodi.
Повірили попереднього абзацу? "Виявилося зовсім не складно" - як би не так! Ні, все приблизно так, багато клавіш можна запрограмувати саме в налаштуваннях цієї утиліти. Багато, тільки - НЕ F12. Її просто немає в списку для вибору, і вручну її чи не ввести. Добре, що настройки ці зберігаються в реєстрі Windows і їх можна редагувати, додавати, видаляти, в загальному, робити все, що заманеться, за допомогою regedit. Нижче викладаю знімок того, що я вбив в реєстрі, щоб отримати потрібний результат.
В принципі, все вийшло здорово, але ось тільки дружина до цього нового пристрою управління симпатій не відчувала. Їй було зручніше керувати XBMC (і згодом Kodi) за допомогою звичайного пульта. Ну як звичайного ... Колись я користувався ноутом від HP, з яким поставлявся пульт дистанційного керування в парі з виносним приймачем. Налаштувати роботу цього пульта в парі з XBMC не склало великих труднощів, я вже писав про це. Але ось запуск самого медіа центру налаштувати відразу не вийшло.
Ось він - "звичайний" пульт
Причина затримки полягала в тому, що я намагався згадати, як вирішував це питання раніше. А вирішував я його за допомогою спеціального програмного забезпечення, створеного для роботи з пультами дистанційного управління розробниками якогось медіа сервера. Але я не пам'ятав ні назва цього ПО, ні назви самого сервера. Тому копати довелося заново. І, в результаті цього процесу, мені пощастило знайти більш оптимальне рішення, при використанні якого можна обійтися, практично, без сторонніх програм.
Розповім коротенько суть. У реєстрі Windows є гілка, що відповідає за те, як будуть працювати пульти дистанційного керування, вірніше, за настройку драйвера eHome, Це гілка:
HKEY_LOCAL_MACHINE
\ SYSTEM
\ CurrentControlSet
\ Services
\ HidIr
\ Remotes
\ 745a17a0-74d3-11d0-b6fe-00a0c90f57da
У цій гілці багато чого цікавого, але зараз нам потрібно знати, який саме параметр відповідає за те, як перетворюються кнопки, натискаються на пульті, в якісь зрозумілі комп'ютеру, драйверу, операційній системі, програмами команди. І з wiki стає зрозумілим, що цей параметр має назву ReportMappingTable.
Далі ще цікавіше. Значення цього параметра - хитро закодований масив бінарних даних. Кожна кнопка кодується сім'ю байтами. Перший байт - код кнопки пульта. Це значення можна подивитися в таблиці. Другий, третій і четвертий байти завжди нулі, по крайней мере, є таке твердження. Значення п'ятого байта визначає, яким чином слід інтерпретувати наступні два байти (шостий і сьомий). І про це варто написати докладніше.
Ну і нарешті, якщо в п'ятому байте встановити значення 04, то драйвер eHome буде генерувати звичайні натискання клавіатурних клавіш, тобто, натискання на кнопки пульта будуть перетворені в натискання клавіш на клавіатурі. При цьому, шостий байт буде містити так званий модифікатор - код, який вказує, які спеціальні кнопки натиснуті. Якщо цей байт дорівнює нулю, то спеціальні клавіші хоч як мене натискаються. Далі, клавіші Control ставиться у відповідність значення 1, клавіші Shift - значення 2, клавіші Alt - значення 4, і, нарешті, клавіші Windows - значення 8. Тобто, якщо в шостий байт занести значення 0F. то буде емулюватися натискання комбінації клавіш Ctrl + Shift + Alt + Win. а якщо 03 - то комбінація Ctrl + Shift. У сьомому байті, при цьому, повинен вказуватися код звичайної клавіатурній клавіші, підглянути який можна в цій табличці.
Ось і вся премудрість. Як же я застосував всі ці знання на практиці? Я відкрив програму regedit.exe. знайшов потрібний мені параметр і відкрив його на редагування. Я хотів, щоб на зелену кнопку із зображенням прапорця Windows викликався улюблений мною Kodi. Код цієї кнопки, згідно з інформацією з wiki Kodi, дорівнює 0D. У бінарному масиві я знайшов сім байт, що відповідають за обробку натискання на цю кнопку пульта, в моєму випадку вони виглядали так (прогалини я додав для простоти воспіятія):
0D 00 00 00 04 03 1A
Я не став розбиратися, що це мало значити, просто замінив на наступну послідовність байт (врахуйте, прогалини - тільки для краси):
0D 00 00 00 04 01 45
Розшифровуємо ... Для кнопки пульта з кодом 0D (кнопка з прапорцем Windows) просимо драйвер eHome емулювати натискання на клавіатурні клавіші (п'ятий байт дорівнює 04) Ctrl (шостий байт дорівнює 01) і F12 (сьомий байт дорівнює 45). А так як на комбінацію клавіш Ctrl + F12 у мене призначений виклик Kodi, то я повинен отримати те, до чого прагнув.
Отже, зміни зроблені, збережені в реєстрі Windows, залишається лише перезавантажити комп'ютер і насолоджуватися результатом.
Читачам залишилося потерпіти зовсім трохи. Вище я написав, що знайдене рішення дозволяє вирішити задачу практично без використання сторонніх програм. Але сам, по суті, використовував функціональність утиліти, що поставляється разом з комп'ютером, а саме, Hotkey Utility. Чи можна обійтися без неї? Звичайно ж да! Для цього можна скористатися наявними можливостями ярликів (shortcuts) програм, що створюються на робочому столі Windows.
Коли створюється (або редагується) такий ярлик, є можливість вказати комбінацію клавіш, яка буде використовуватися для запуску цього ярлика. Власне, картинка (правда, не для Kodi, для іншої програми) представлена нижче:
Просто тиснемо потрібні клавіші
Встановлюєте в обведене поле курсор і просто натискаєте ту комбінацію клавіш, яку хочете використовувати для запуску цього додатка. Все, після цього зберігаєте налаштування. І так, не забудьте, що в реєстрі, в параметрі ReportMappingTable. треба буде закодувати саме цю, призначену вами, комбінацію клавіш.
Ось такі справи…