|
|
Статьи Компьютерные TV-Radio тюнеры Софт и драйверы тюнеровНастройка программы SlyControl для чайников.8 января 2004, 21:16Nem
В этой статье я попытаюсь вам максимально быстро и просто объяснить, как настроить известную программу SlyControl, под свой пульт управления. И как создать скрипт под свою программу, чтоб SlyControl её понимал, не вдаваясь в подробности различных плагинов. 1. Итак, приступим. Качаем и устанавливаем саму программу, заходим в неё первый раз, и что мы видим, появляется Мастер настройки, и мы выбираем наш плагин пульта. Тут я думаю, ничего сложного нет, и я покажу пример под свой плагин для ИК порта Tekram Ir210. Под любой другой плагин делается всё практический идентично : ![]() 2. Затем жмём кнопку "настройка", и появляется окно, где нам нужно выбрать пульт либо ТВ тюнер, в зависимости от плагина. Если у вас ТВ тюнер то следующий пункт вы можете не читать, а просто выбрать свой Тюнер из списка и нажать кнопку "ОК". А вот если вы сидите по ИК порту то здесь вам надо настроить кнопки на пульте, делается это так: Направляем пульт к ИК, жмём нужную кнопку, но надо сделать так чтобы в мониторинге снизу была не короткая а длинная волна, вот такая : ![]() 3. Затем нажимаем кнопку "Add->" и задаём название кнопки, осторожно! Надо чтоб кнопки соответствовали требуемой команде, вот список всех нужных команд (остальные я решил не предлагать вам из-за ненадобности) :
Полный список команд вы можете прочитать здесь : C:\Program Files\SlyDiman\SlyControl2\Data\std_keys.txt 4. Дальше жмём кнопку "применить", там появиться WinLirc, вам скорее всего он не понадобиться, жмём "применить" дальше. Появляется настройка управления общей громкостью, тоже жмём "применить". Вот появилось очень интересное и нужное окно со скриптами, ставьте все скрипты, которые вам нужны и жмите далее (и поставьте скрипты для WinAmp 2.x, Windows Media Player 6.4, TVtool и bRadio) . Вот здесь надо быть осторожнее, выставите программы по умолчанию для кнопок ТВ, Видео, Аудио, Радио. Ставьте те которые вам нужны, а если среди них нет нужной выберите любую, я лично расскажу вам на примере первых скриптов чтоб не путать, т.е. вот так : ![]() 5. Жмём кнопку "Применить" до конца. Итак, он запустился, но не так как нужно. Причём я заметил одну ошибку при использовании порта Tekram IR210, неправильно прописан плагин, чтобы исправить это, жмём на вкладку "Структура", выбираем скрипт RemoteCFG.scs и правим StartRemote и StopRemote, меняем модуль IrDA на IR210, вот так вот : ![]() ПРИМЕЧНИЕ: Да, неувязочка вышла ;-) В последней версии это уже исправлено. Чтобы устранить проблему в корне нужно было в файле - C:\Program Files\SlyDiman\SlyControl2\Data\CfgWizard\remotecfg.scs заменить IrDA.Start() и IrDA.Stop() на Ir210.Start() и Ir210.Stop() Итак, исправили. Теперь займёмся скриптами. 6. Чтобы SlyControl знал вашу программу надо написать скрипт, делается это очень легко (я покажу пример с TV из ATI Multimedia Center), нажимаем во вкладке "структура" кнопку новый скрипт : ![]() Набираем в поле "имя файла" название программы, допустим TV : ![]() Нажимаем открыть, нас спрашивают "создать файл TV.scs ?", жмём "Создать". Теперь у нас появился пустой скрипт во вкладке "скрипт", переходим туда и вставьте вот этот текст в скрипт : PROG_Always = Group( Enabled ){
} #=========================================================== PROG = Group( Disabled ){
} ПРИМЕЧАНИЕ: Все что справа от символа # считается комментарием и на работу не влияет. Это не относится к скриптам в папке C:\Program Files\SlyDiman\SlyControl2\Data\CfgWizard Вставили? Хорошо, везде там где прописано PROG меняете на название программы (например ATITV). Так прописываем до конца, не забудьте прописать правильный путь к программе в ExecFile и если надо параметр добавить то добавляйте либо сотрите эту строчку вместе с запятой. Далее в скрипте будем прописывать, текст и иконку которые будут выводиться при запуске, вот так я сделал у себя : ATITV_Always = Group( Enabled ){
} #===========================================================
Иконки находяться в С:\Program Files\SlyDiman\SlyControl2\Plugins\OSD\Images. Можно использовать *.ico и *.bmp файлы, т.е. свои вставлять. ПРИМЕЧАНИЕ: Хочу пояснить что такое 999 рядом с MediaDisable. Когда открывается какая-то мультимедийная программа, для которой загружен скрипт (например Winamp), то всем скриптам посылается команда MediaDisable, чтобы они отключились и освободили кнопки типа PLAY, PAUSE, STOP и др. Сам же скрипт пославший сообщение MediaDisable не должен на него реагировать. Если этого не сделать, то невозможно предсказать какая и как из нескольких мультимедийных программ загруженных одновременно отреагирует например на кнопку PLAY. Число 999 может быть любое, главное чтобы оно не повторялось в других скриптах (см. main.scs). Если копать глубже то нужно смотреть в описании оператора Hook 4-й и 5-й параметры - они задают порядок и условия обработки события, в случае если одному событию (например одной кнопке пульта) соответствует несколько hook'ов. Далее делаем две клавиши, "во весь экран" и "следующий канал", за основу берутся быстрые клавиши требуемой программы, то есть r ghbvthe для ATI MultiMedia Center у нас получилось "во весь экран" клавиши CTRL+F, а "следующий канал" клавиша вверх (сравните с оригиналом с верху и сделайте также под свою программу, строка MyRemote означает название команды) : ZoomRemote = Hook( "REMOTE", "ZOOM", Enabled, Break ){ ChanelUPRemote = Hook( "REMOTE", "9", Enabled, Break ){ ПРИМЕЧАНИЕ: Закомментированные команды (после #) написаны для проверки является ли окно нужной программы активным и если нет, то активизируют его. При необходимости уберите # перед этими командами. ПРИМЕЧАНИЕ: Что означает Break( ChanelUPRemote <> 0 ) в последнем примере? Дело в том что при нажатии кнопки на пульте скрипт получает несколько сообщений, сначала с кодом 0, потом (если держать кнопку) то с кодом 1,2,3 и т.д., при отпускании кнопки на пульте код равен -1. Команда Break( ChanelUPRemote <> 0 ) отфильтровывает все кроме первого нажатия (код 0). Если ее убрать, то Ctrl+F сработает как минимум 2 раза - при нажатии кнопки на пульте (код 0) и при ее отпускании (код -1). И что же у нас получилось а получилось то что при нажатии на пульте клавиши Zoom у нас прога становиться во весь экран :) а при нажатии другой кнопки переключался канал :) вот так дальше и задаем разные кнопки. 7. Теперь делаем так чтобы при нажатии на пульте кнопок TV, Video, Audio, Radio, появлялись не только те программы, которые можно выбрать в SlyControl`е, когда мы были в мастере настройки, а те что нам нужны. Рассмотрим на примере кнопки TV, там можно выбрать много из стандартных. Но, вдруг они вам все не нравятся, или не подходят к вашему железу. Значит надо выбрать другую. Итак, помните мы выбирали в начале в Мастере настроек приложения по умолчанию? Вот там и посмотрите что вы выбрали, если вы выбрали то что я написал по умолчанию, т.е. TVTool то найдите его скрипт, потом в самом начале скрипта найдите строчки : это команда выполнить, отредактируйте её чтоб там стояло, например : Теперь при нажатии на пульте кнопки Video будет запускаться калькулятор. ПРИМЕЧАНИЕ: Не очень удачное решение ;-) Лучше откройте файл C:\Program Files\SlyDiman\SlyControl2\Data\CfgWizard\favorites.scs и найдите фрагмент : ### SELECT TV ### А теперь можете добавить ДВЕ строки вида : # PROGNAME и в мастере настройки для кнопки TV появится пункт PROGNAME. В приведенном выше примере PROG заменялся на ATITV, это будет выглядеть так : # MultiDec 8. Теперь сделаем так, чтоб SlyControl нормально находил нашу программу. Заходим в вкладку модули, выбираем модуль WinMon. Находим в списке приложений мониторинга, нашу, т.е. в данном случае ATITV и нажимаем кнопку настройка событий, появляется непонятное окно с нужными нам строками Class Name и Windows Text : ![]() Но мы эти Class Name и Window Text можем и не знать, в этом случае надо зайти в нашу нужную программу, перейти в SlyControl, зайти в меню "настройка" и нажать на "Информация о программах…" либо нажать клавишу F3 : ![]() Потом появляется окно, начинаем искать нашу программу и ищем в ней более или менее вразумительного названия Class Name и Window Text : ![]() И вписываем эту информацию в модуль, и всё :) ПРИМЕЧАНИЕ: Можно поступить проще - в "непонятном окне" нажать кнопку Detect, потом подвести курсор мыши к заголовку нужного окна и нажать кнопку Scroll Lock (по умолчанию). Если заголовок окна меняется (например в нем отображается название канала / фильма / музыкальногофайла), то WindowText можно не указывать. Но если ClassName не уникальный (встречается в других программах), придется в Window Detect Method вместо FindWindow выбрать Advanced и ... это уже не для этого FAQ ;-) Советую после каждой удачной измены в скриптах делать резервную копию программы. |
|||||
|
|
Курс Инвестирование для всех - создание логотипа. Логотипы и фирменный стиль. |
Copyright © 1999-2012 PcTuner.Ru · Design by Alex Dovby
|