Плагин SlyControl 2.7.12 для управления программой GOTVIEW PRO

Плагин SlyControl 2.7.12 для управления программой GoTView PRO

ПРЕДИСЛОВИЕ
В Интернете очень много информации о SlyControl, много утверждений о том, что это лучшая программа для управления компьютером с помощью пульта ДУ, поэтому было обидно, что невозможно использовать все её возможности в отношении GoTView PRO. Теперь проблема решена, появился плагин GoTView, реализующий практически весь потенциал оконных сообщений GoTView PRO.
Скачать SlyControl и Help к нему можно на официальной странице, программа бесплатна для жителей России.

ВОЗМОЖНОСТИ
Плагин содержит в себе практически все возможности управлением GoTView PRO, также выводит информацию о текущем канале в качестве строки, устанавливает флаг наличия видеоокна. Флаг можно использовать, если Вы захотите задать на одну кнопку захват AVI или WMA в зависимости от того, в каком режиме сейчас работает тюнер, TV или FM.
При этом тюнером можно управлять, даже если программа GoTView PRO свёрнута в трей или даже если вы запустили какую-нибудь игру.

СПИСОК КОМАНД ПЛАГИНА GoTView:
УПРАВЛЕНИЕ ПЕРЕКЛЮЧЕНИЕМ КАНАЛОВ
ChannelUp - канал вперёд
ChannelDown - канал назад
ChannelPrev - предыдущий канал
Channel <№канала> - переключить на канал №    [ синтаксис: GotViewTV("Channel", h)  ]
Channel0 - переключить на канал №0
Channel1 - переключить на канал №1
Channel2 - переключить на канал №2
Channel3 - переключить на канал №3
Channel4 - переключить на канал №4
Channel5 - переключить на канал №5
Channel6 - переключить на канал №6
Channel7 - переключить на канал №7
Channel8 - переключить на канал №8
Channel9 - переключить на канал №9
Channel10 - переключить на канал №10
PIPStartStop - Включение PIP устройства
PIPChannelPlus - PIP канал вперед
PIPChannelMinus - PIP канал назад
PIPSwap - Обмен каналами основного и PIP устройства                        
PIPChannel0 - переключить PIP канал на №0
PIPChannel1 - переключить PIP канал на №1
PIPChannel2 - переключить PIP канал на №2
PIPChannel3 - переключить PIP канал на №3
PIPChannel4 - переключить PIP канал на №4
PIPChannel5 - переключить PIP канал на №5
PIPChannel6 - переключить PIP канал на №6
PIPChannel7 - переключить PIP канал на №7
PIPChannel8 - переключить PIP канал на №8
PIPChannel9 - переключить PIP канал на №9
PIPChannel10 - переключить PIP канал на №10

УПРАВЛЕНИЕ ЗВУКОМ
VolumeUp - увеличить громкость
VolumeDown - уменьшить громкость
MuteTrigger - триггер включения звука
MuteOn - выключить звук
MuteOff - включить звук

УПРАВЛЕНИЕ "ОТЛОЖЕННЫМ ПРОСМОТРОМ"
StartTimeShift - запуск режима "отложенного просмотра"
StopTimeShift - останов режима "отложенного просмотра"
TimeShiftForward - Перемотка отложенного просмотра вперед
TimeShiftBack - Перемотка отложенного просмотра назад
TimeShiftGoEnd - Перемотка отложенного просмотра в конец
TimeShiftGoBegin - Перемотка отложенного просмотра в начало

УПРАВЛЕНИЕ ЗАХВАТОМ
StartCaptureAvi - запуск захвата в avi
StopCaptureAvi - останов захвата в avi
PauseCaptureAvi - пауза захвата avi
ShowAvi - показ захватываемого/захваченного AVI файла
StartCaptureMpeg - запуск захвата в мпег
StopCaptureMpeg - останов захвата в мпег
PauseCaptureMpeg - пауза захвата в мпег
ShowMpeg - показ захватываемого/захваченного MPEG файла
StartCaptureWMV - запуск захвата в windows media
StopCaptureWMV - останов захвата в windows media
PauseCaptureWMV - пауза захвата в windows media
ShowWMV - показ захватываемого/захваченного WMV файла
StartCaptureWAV - запуск захвата звука в WAV
StopCaptureWAV - останов захвата в WAV
StartCaptureSnap - запуск захвата картинок
StopCaptureSnap - останов захвата картинок
Snapshot - одиночный скриншот

УПРАВЛЕНИЕ ОКНОМ
FullScreen - переключение в полный экран и обратно
FullScreenHS - переключение в полный экран и обратно/ спрятать<-->показать программу в FM-режиме
HideTrigger - спрятать<-->показать программу в TV - режиме
HideMe - спрятать программу
ShowMe - показать программу
MinimizeTrigger - минимизировать программу, триггер
MinimizeMe - минимизировать программу
TopMostTrigger - окно поверх всех других окон, триггер
TopMostOn - окно поверх всех других окон включить
TopMostOff - окно поверх всех других окон выключить

ПЕРЕКЛЮЧЕНИЕ ИСТОЧНИКА ВИДЕО И ТВ СТАНДАРТА
Source - переключение источника видео
SourceTV - переключить видео на TV
SourceAV - переключить видео на AV
SourceSVHS - переключить видео на SVHS
System - переключение ТВ стандарта
SystemNTSC - переключить стандарт на NTSC
SystemPAL - переключить стандарт на PAL
SystemSECAM - переключить стандарт на SECAM

УПРАВЛЕНИЕ ИЗОБРАЖЕНИЕМ
Size3x4 - установить пропорции окна как 3 к 4-м
SharpNessPlus - увеличить резкость
SharpNessMinus - уменьшить резкость
GammaPlus - увеличить гамму
GammaMinus - уменьшить гамму
BalancePlus - увеличить баланс белого
BalanceMinus - уменьшить баланс белого
BackLightCompPlus - увеличить компенсацию тылового света
BackLightCompMinus - уменьшить компенсацию тылового света

УПРАВЛЕНИЕ OSD
Menu - Меню
MenuNext - Вниз
MenuPrev - Вверх
MenuApply - Применить
MenuCansel - Отмена
EraseOSD - убрать OSD

РАЗНОЕ
Quit - Выход из программы
TV_FM - переключение TV <---> FM
ShutDownTimer - Установка таймера на отключение
Pause - Пауза просмотра
ShowTime - Показать время
StartCaptureEnet - запуск вещания по сети
StopCaptureEnet - останов вещания по сети
TVGuidNow - Показ ТВ программы "сейчас"
TVGuidNext - Показ ТВ программы "будет"
TVGuidPrev - Показ ТВ программы "было"
ВЫВЕСТИ ИНФОРМАЦИЮ О КАНАЛЕ В OSD:
                h = GotViewTV.ActionManual()
                OSD("%s", @2)
            h можно использовать как флаг наличия видеоокна: h = 0 – видеоокно есть; h = 3 – видеоокно отсутствует. Чтобы отобразить в OSD значение h, нужно ввести
               OSD("%d", h)

Соответствие кнопок пульта и функций (при желании, Вы можете их изменить):


Кнопка пульта

Функция

Power

выключить GoTView PRO

Source

запустить GoTView PRO

1

переключить на 1-й канал

2

переключить на 2-й канал

3

переключить на 3-й канал

4

переключить на 4-й канал

5

переключить на 5-й канал

6

переключить на 6-й канал

7

переключить на 7-й канал

8

переключить на 8-й канал

9

переключить на 9-й канал

0

переключить на 0-й канал

CH_UP

спрятать программу

CH_DOWN

показать программу

Recall

предыдущий канал

Enter

информация о канале

Up

следующий канал

Down

предыдущий канал

Left

уменьшить громкость

Right

увеличить громкость

Menu

Меню

Capture

сделать одиночный снимок

Prev

перемотка назад при таймшифте

Next

перемотка вперёд при таймшифте

Display

переключить TV<-->FM

Timeshift

запустить таймшифт

Stop

остановить таймшифт

Pause

пауза при записи

Play

показ захватываемого/захваченного AVI файла

Rec/Play

захват WAV

Zoom

полный экран

MTS

показать время

Open

установить таймер на отключение

Record

захват AVI


СИНТАКСИС И ПРИМЕРЫ
 
Синтаксис команд плагина:

GotViewTV.ActionManual( <Command> )
или
GotViewTV( <Command> )

Примеры:

VolumeUp    = Hook( "REMOTE", "VOL_UP", Enabled, Break ){
                Break( VolumeUp < 0 )
                GotViewTV.ActionManual("VolumeUp")         #увеличить громкость
              }

   FullScreen = Hook( "REMOTE", "Zoom", Enabled, Break){
                Break( FullScreen <> 0)
                GotView("FullScreen")                      #на весь экран
              }

      Channel = Hook("REMOTE", "X", Enabled, Break){
                Break( Channel<>0)
                GotView("Channel", 17)                 #переключить на 17-й канал
              }

        Получить информацию о канале:

      Recall  = Hook( "REMOTE", "Recall", Enabled, Break ){
                Break( Recall <> 0 )
                GotViewTV("ChannelPrev")     #предыдущий канал
                EventSend("info","channel")  #получить информацию о новом канале

             }
                                             #получить информацию о новом канале
  InfoChannel = Hook("info","channel", Enabled, Break){   
                Break(InfoChannel<0)
                h = GotViewTV.ActionManual()
                Timer(300)
                h = GotViewTV.ActionManual()
                OSD("%s", @2)
             }



НАСТРОЙКА
 
Установите SlyControl 2.7.12 .  
Распакуйте архив GoTView.zip  в папку C:\Program Files\SlyDiman . При этом Вам будет предложено заменить файлы, согласитесь заменить все.
Запустите SlyControl, при этом нужно будет ввести название текущего месяца маленькими русскими буквами. Перед Вами откроется следующее окно:
 

 В нём выберите из списка GotView и поставьте напротив него «птичку», убедитесь в отсутствии «птичек» в остальных пунктах списка. Внизу окна снимите «птичку» с «Открывать при запуске». Можете нажать на кнопку «Настройка» и убедиться, что программа реагирует на нажатие кнопок пульта.

Нажимайте кнопку «Применить» до тех пор, пока не откроется следующее окно:


Здесь обязательно поставьте «птичку» напротив GotView.scs . Остальные скрипты можете подключать по желанию, только не нужно включать все, иначе могут появиться ошибки и зависание программы. Если программа GoTView PRO у Вас установлена в папку не «по умолчанию», нажмите кнопку «Обзор» и укажите правильный путь.  Нажмите «Применить». В следующем окне:


В выпадающем списке «TV» выберите GotView. У Вас он будет запускаться по нажатию кнопки Source. Нажмите «Применить». Открыть все вышеприведенные окна Вы всегда сможете, вызвав Мастер настройки из меню «Настройка».
 Вы можете изменить кнопку запуска программы, открыв с помощью блокнота файл SlyDiman\SlyControl2\Data\CfgWizard\ favorites.scs и изменив в строчке TV    = Hook( "REMOTE", "Source", Enabled, Break ){ слово Source на наименование какой-либо другой кнопки.
И последняя настройка: для того, чтобы программа SlyControl могла распознавать окно GoTView PRO среди остальных, ей нужно на него указать. Для этого открываем SlyControl и заходим на вкладку «Модули» (Plugins). Затем в левом окошке ставим курсор на WinMon и в появившемся списке справа выбираем GotView:

 
Затем нажмите на кнопку «Настройка событий», откроется окно Windows monitoring:


В нём выберите Advansed, нажмите кнопку Detect и щёлкните мышкой по панели управления (не по видеоокну) запущенного GoTView PRO. После того, как в окошке определится HWND, нажмите OK, и в «Windows monitoring» выставьте «птички», как показано на рисунке. Закройте окно, перезапустите программу, и можете пользоваться.

РЕДАКТИРОВАНИЕ СКРИПТОВ

Для тех, кто самостоятельно хочет редактировать скрипты, следующие пояснения:
Всё, что в строке следует после значка  #  , воспринимается как комментарий и программой игнорируется.
Программа выполняет любые действия, реагируя на какое – либо событие, которым может быть нажатие кнопки на пульте ДУ, нажатие клавиши или сочетания клавиш на клавиатуре, а также на команду, которая может посылаться из скриптов.
Для того, чтобы программа отслеживала события, устанавливается своеобразная ловушка – Hook, например:

Sobit = Hook("Remote", …)    #параметр Remote означает, что ловушка Sobit начнёт выполнять свою функцию при нажатии кнопки на пульте ДУ
Sobit = Hook("Key", …)         # параметр Key означает, что ловушка Sobit начнёт выполнять свою функцию при нажатии клавиши или сочетания клавиш на клавиатуре

Sobit = Hook("Audio", …)      #здесь параметр Audio является командой, посылаемой самой программой после какого – либо события, используется, в основном, для того, чтобы подавать команды неактивной группе из активной, об этом будет рассказано далее.

Поясним на примере, как сделать, чтобы по нажатию кнопки на пульте или клавиши на клавиатуре, на экране высветилось слово «Привет» (чтобы проверить, добавьте в скрипт Windows):

 Для срабатывания после нажатия кнопки Min на пульте:

Privet = Hook( "Remote", "Min", Enabled, Break, 210){
             Break( Privet<>0 )
             OSD("Привет")
             Timer( 2000 )
             OSD("Как дела?")
}

Для срабатывания после нажатия сочетания клавиш Alt+Z на клавиатуре:

Privet = Hook( "Key", "Alt+Z", Enabled, Break, 210){
             Break( Privet<>0 )
             OSD("Привет")
             Timer( 2000 )
             OSD("Как дела?")
}

  Здесь параметр Enabled означает, что ловушка постоянно включена и отслеживает событие, после которого она должна сработать, т.е. в нашем случае «ожидает» нажатия кнопки Min или клавиш Alt+Z. Соответственно возможно второе состояние ловушки -  Disabled, когда ловушка выключена и не реагирует на нажатия кнопок и клавиш.
Далее идёт параметр Break. Он запрещает обработку события другим ловушкам и задаёт условие выполнения команд ловушки. В данном случае строка  Break( Privet<>0 ) делает так, что команды выполнятся только один раз, по нажатию кнопки или клавиши. Если эту строчку убрать, команды будут выполняться многократно, пока вы удерживаете кнопку или клавишу.
Далее идёт число 210. Это приоритет выполнения ловушки. Допустим, у вас прописаны две ловушки, которые срабатывают от одной кнопки. Если вы нажмёте на кнопку, сработает ловушка с большим приоритетом, т.е. та, у которой число меньше. Если вы не пропишете число, оно по умолчанию будет считаться 128.
Далее идёт скобка {. В любой ловушке есть тело, заключённое в скобках {     }. Все команды, которые должны выполняться в данной ловушке, должны быть в пределах этих скобок.
OSD – это плагин, который позволяет отображать на экране текст в одной строке. Вы можете в кавычках написать, что захотите, и это отобразится на экране после срабатывания ловушки.
Далее идёт таймер на 2000 миллисекунд – 2 секунды, для того, чтобы надпись «Привет» отображалась на экране 2 секунды, пока её не сменила надпись «Как дела?».
Ещё один пример:
Privet = Hook( "Remote", "Min", Enabled, Break, 210){
             Break( Privet<>0 )
             OSD("Привет")
             HookEnable( Windows, Poka) #включает ловушку Poka
             
}

Poka = Hook( "Remote", "Min", Disabled, Break, 200){
            Break( Poka<>0)
            OSD("Пока")
            HookDisable( Windows, Poka) # выключается ловушка Poka

 }
Здесь ловушка Poka была изначально выключена, а когда её включили в ловушке Privet, у неё оказался приоритет выше, поэтому при последующем нажатии на кнопку Min сработает ловушка Poka.
Каждая ловушка принадлежит к своей группе, поэтому в конкретный момент времени выполняются ловушки из группы, которая сейчас активна. Если вы посмотрите скрипты, в них можно найти строки, похожие на эту:
Windows = Group( Enabled ){

Этой строкой открывается группа Windows, которая, кстати, всегда активна. После скобки следуют ловушки, относящиеся к этой группе. Группа всегда должна закрываться скобкой, поэтому окончание группы всегда будет выглядеть так:
}
}

Если активна группа с высоким приоритетом ловушек, вы не можете непосредственно управлять другой активной группой с более низким приоритетом, однако можете посылать ей команды. Например, вы хотите послать команду в группу Windows из группы Winamp:

Privet = Hook( "Remote", "Min", Enabled, Break, 110){
             Break( Privet<>0)
             EventSend("Priv ", "Windows ") # посылаем команду другой группе
}

Соответственно, в группе Windows будет ловушка, реагирующая на эту команду:

PrivetW = Hook("Priv ", "Windows ", Enabled, Break){
                Break( PrivetW<>0)
                OSD("Привет")
}

Ещё одно применение для команды EventSend:


FUNVKL = Hook( "Audio", "What_ Winamp ", Enabled, Break) {
              Break( FUNVKL<>0)
              Timer (3000)
              OSD( "Назначение кнопок в Winamp" , "X:55 Y:5 T:1000 C:255.0.102")
              Timer (10)
              EventSend( "Audio", "What_ Winamp ")
}

Здесь реализован цикл – красная мигающая надпись.

Вот перечень некоторых команд, которые можно выполнять в ловушках:

Keyboard( "PRESS", "Enter" )      #эмуляция нажатия клавиши на клавиатуре (можно прописать любую)
Mouse( "MOVE,L,%", 500, 40 )    #передвинуть курсор мыши к точке с координатами X=500, Y=40
Mouse( "MOVE,D,D", 10, -10 )   #передвинуть курсор мыши вправо вверх
Mouse( "MOVE,D,D", -10, 0 )     #передвинуть курсор мыши влево
Mouse("CLICK", "LEFT" )          #клик левой клавишей мыши

Подробно о командах плагинов читайте в хелпе к SlyControl.
Если научиться правильно использовать возможности эмуляции клавиатуры и мыши, можно управлять практически любой программой с пульта ДУ.
Удачи вам.
 
Автор: Бурчик Владимир Николаевич
 
Обсуждение статьи на форуме  
 
@Mail.ru Rambler's Top100