Germany | Finland | Saint Petersburg | Drive

Путешествия по меню QUIK из QPILE

Опубликовано в Утилиты

Заказчику понадобилась возможность отключать внешние транзакции, разрывать связь с брокером из qpile.

Понятно, что из qpile впрямую этого не сделать, нужна "помощь друга". Другом была назначена внешняя программа, сканирующая каталог на наличие файла с ценными указаниями. Этот файл создаётся портфелем на qpile в момент, определяемый логикой самого портфеля. Ценные указания состоят из двух частей:

  • фрагмент заголовка окна, куда необходимо послать требуемую последовательность клавиш
  • собственно название сценария. Сценарий - это имя файла, в котором указана последовательность клавиш. 

Файл сценария - это обычный текстовый файл, в котором  указана последовательность символов (кнопок), которые требуется нажать оператору, чтобы достигнуть необходимого результата. Например, для включения/выключения внешних транзакций последовательность клавиш будет такой:

{Alt}яв з

"Помощь друга" и состоит в эмуляции нажатия этих кнопок.

Очевидно, что таких сценариев пользователь может сам подготовить произвольное количество и для любых целей. В результате оказалось, что управлять можно не только терминалом QUIK, а эмулировать любые действия пользователя, которые можно сделать с использованием клавиатуры компьютера.

Очевидно, что кроме обычных кнопок, на клавиатуре имеется масса специальных. Таких как Alt, который нам потребовался для переключения обработчика внешних транзакций. Вот полный список всех допустимых специальных кнопок:

 

Команда Результат эмуляции
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} SPACE (пробел)
{ENTER} ENTER основной клавиатуры
{ALT} ALT
{BACKSPACE} или {BS} BACKSPACE
{DELETE} или {DEL} DELETE
{UP} Стрелка вверх
{DOWN} Стрелка вниз
{LEFT} Стрелка влево
{RIGHT} Стрелка вправо
{HOME} HOME
{END} END
{ESCAPE} или {ESC} ESCAPE
{INSERT} или {INS} INS
{PGUP} PageUp
{PGDN} PageDown
{F1} - {F12} Функциональные клавиши
{TAB} TAB
{PRINTSCREEN} Клавиша Print Screen
{LWIN} Левая клавиша Windows
{RWIN} Правая клавиша Windows
{NUMLOCK on} NUMLOCK (on/off/toggle) (включить/выключить/переключить)
{CAPSLOCK off} CAPSLOCK (on/off/toggle) (включить/выключить/переключить)
{SCROLLLOCK toggle} SCROLLLOCK (on/off/toggle) (включить/выключить/переключить)
{BREAK} для Ctrl+Break
{PAUSE} PAUSE
 
{NUMPAD0} - {NUMPAD9} Цифры (цифровая клавиатура)
{NUMPADMULT} * (цифровая клавиатура)
{NUMPADADD} + (цифровая клавиатура)
{NUMPADSUB} - (цифровая клавиатура)
{NUMPADDIV} / (цифровая клавиатура)
{NUMPADDOT} . (цифровая клавиатура)
{NUMPADENTER} Enter (цифровая клавиатура)
{APPSKEY} Клавиша Windows App
{LALT} Левый ALT
{RALT} Правый ALT
{LCTRL} Левый CTRL
{RCTRL} Правый CTRL
{LSHIFT} Левый Shift
{RSHIFT} Правый Shift
{SLEEP} Клавиша спящего режима компьютера
{ALTDOWN} Удерживать ALT в нажатом состоянии, до {ALTUP}
{SHIFTDOWN} Удерживать SHIFT в нажатом состоянии, до {SHIFTUP}
{CTRLDOWN} Удерживать CTRL в нажатом состоянии, до {CTRLUP}
{LWINDOWN} Удерживать левый Windows в нажатом состоянии, до {LWINUP}
{RWINDOWN} Удерживать правый Windows в нажатом состоянии, до {RWINUP}
{ASC nnnn} Выслать клавишу, указав её номер
{BROWSER_BACK} Только в 2000/XP: Кнопка "назад" в окне просмотра
{BROWSER_FORWARD} Только в 2000/XP: Кнопка "вперёд" в окне просмотра
{BROWSER_REFRESH} Только в 2000/XP: Кнопка "обновить" в окне просмотра
{BROWSER_STOP} Только в 2000/XP: Кнопка "остановить" в окне просмотра
{BROWSER_SEARCH} Только в 2000/XP: Кнопка "поиск" в окне просмотра
{BROWSER_FAVORITES} Только в 2000/XP: Кнопка "избранное" в окне просмотра
{BROWSER_HOME} Только в 2000/XP: Запускает браузер и переходит на домашнюю страницу
{VOLUME_MUTE} Только в 2000/XP: Выключить звук
{VOLUME_DOWN} Только в 2000/XP: Уменьшить звук (на 4% от 100)
{VOLUME_UP} Только в 2000/XP: Увеличить звук (на 4% от 100)
{MEDIA_NEXT} Только в 2000/XP: Следующий трек в медиа-плеере
{MEDIA_PREV} Только в 2000/XP: Предыдущий трек в медиа-плеере
{MEDIA_STOP} Только в 2000/XP: Остановить воспроизведение в медиа-плеере
{MEDIA_PLAY_PAUSE} Только в 2000/XP: Воспроизведение / пауза в медиа-плеере
{LAUNCH_MAIL} Только в 2000/XP: Запуск почтовой программы
{LAUNCH_MEDIA} Только в 2000/XP: Запуск медиа плеера
{LAUNCH_APP1} Только в 2000/XP: Запуск первой программы пользователя
{LAUNCH_APP2} Только в 2000/XP: Запуск второй программы пользователя

Большинство клавиатур ноутбуков имеют специальную клавишу Fn. Эта клавиша не может быть эмулирована.

 

Чтобы сэмулировать нажатие кнопки с одновременным ALT, нужно указать восклицательный знак перед ней. Пример:

  • !Q задает Alt-Q


Знак '+' перед символом задает одновременное нажатие клавишт Shift. Примеры:

  • Hell+o даст HellO
  • !+a эмулирует нажатие ALT+SHIFT+a


'^'  указывает на необходимость эмуляции одновременного нажатия клавиши CTRL, поэтому

  • ^!a эмулирует нажатие CTRL+ALT+a



Решётка '#' эмулирует клавишу Windows. Например,

  • #r эмулирует нажатие Win+r, которое запускает диалоговое окно "Выполнить".

 

В общем, очередная подпорка для qpile, написанная за вечер.

Публикуется с разрешения Заказчика

 

Отдельное спасибо четверке немецких монтёров за отличное настроение:

 

Комментарии   
# Петр 14.09.2012 19:21

Выражаю признательность Михаилу, за качественно и быстро сделанную работу. Полученным продуктом полностью удовлетворен. Михаил, видимо по привычке, сделал даже больше, чем я предполагал. Может кому-то данная программа покажется не нужной, но лично меня она избавляет сразу от нескольких проблем и фобий.
Михаил спасибо за неординарный подход к делу, простые и быстрые разъяснения.
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий