1

Горячие клавиши для отображения геозон

Topic: Горячие клавиши для отображения геозон

Часто необходимо при онлайн мониторинге позиционировать на различные участки карты. Для этого отлично подходят геозоны. Сейчас по двойному клику на геозоне выполняется нужная функциональность, но хотелось бы работать без мыши.

2

Горячие клавиши для отображения геозон

Re: Горячие клавиши для отображения геозон

nbush, что такое "позиционировать на различные участки карты"? Перемещаться в нужное место карты?

Двойные клики в панели геозон у нас не обрабатываются. Вероятно, речь идет об одинарном клике, так? При одинарном клике по геозоне в списке, она центрируется на карте.

А что предлагается делать с горячими клавишами?

Katerina Alexandrova
Product Manager (Hecterra)
Gurtam
3

Горячие клавиши для отображения геозон

Re: Горячие клавиши для отображения геозон

Да, перемещаться в нужное место на карте. На некоторую геозону(ы)  пользователь назначает горячую клавишу(ы) с функционалом "одинарного клика по этой геозоне".

4

Горячие клавиши для отображения геозон

Re: Горячие клавиши для отображения геозон

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

Есть такой способ (конечно, это больше, чем один шаг, но в любом случае мышка не нужна): на клавиатуре нажать клавишу F, затем начинать набирать название нужной геозоны, а потом просто выбрать её из списка найденных элементов. Если название будет достаточно уникальным, процедура займёт не больше пары секунд, и мышка не нужна.

Katerina Alexandrova
Product Manager (Hecterra)
Gurtam
5

Горячие клавиши для отображения геозон

Re: Горячие клавиши для отображения геозон

Спасибо, через F - подойдет способ

6

Горячие клавиши для отображения геозон

Re: Горячие клавиши для отображения геозон

Решил для себя через скрипт на Autoit (который можно скомпилировать в exe-программу)

Назначает горячие клавиши для быстрого перемещения между предопределенными объектами/геозонами
Shift+0 - выход
Shift+1 - геозона "102"
Shift+2 - геозона "kirov"
Shift+3 - геозона "slob"
F3 - циклическое переключение между этими зонами
F4 - включение/выключение автоматического переключения (для работы в режиме презентации)

Примечание: wialon должен быть предварительно запущен в Chrome, в настройках пользователя активированы горячие клавиши

#include <TrayConstants.au3>

Global $autorotate
Global $idx
Global $sendWait

HotKeySet("{F3}", "_rotate")
HotKeySet("{F4}", "_autoRotate")
HotKeySet("+1", "_goHotkey") ;Shift+1
HotKeySet("+2", "_goHotkey")
HotKeySet("+3", "_goHotkey")
HotKeySet("+0", "_Exit")

;TrayTip("I'm a title", "I'm the message", 0, $TIP_ICONASTERISK)
TrayTip("", "Start HotWialon", 5)

$idx = 1
$autorotate = False
$sendWait = 800

While 1
Sleep(100)
WEnd


Func _autoRotate()
   $autorotate = NOT $autorotate
   While $autorotate
      Send("{F3}")
      Sleep(5000)
   WEnd
EndFunc

Func _rotate()
   HotKeySet("{F3}")
   if $idx=1 Then
      _go("102")
      $idx=2
   ElseIf $idx=2 Then
      _go("kirov")
      $idx=3
   ElseIf $idx=3 Then
      _go("slob")
      $idx=1
   EndIf
   HotKeySet("{F3}", "_rotate")

EndFunc

Func _findWialon()
   Opt("WinTitleMatchMode",2)
   ;~ WinActivate("Google Chrome")
   ; WinActivate("[TITLE:Google Chrome]")
   WinActivate("Google Chrome")
   $currTab = WinGetTitle("[ACTIVE]")

   $iTabs = 20 ; MAX tabs for search
   while StringInStr($currTab, "Wialon") = 0
      Send('^{TAB}')
      $currTab = WinGetTitle("[ACTIVE]")
      if $iTabs < 0 Then ExitLoop
      $iTabs = $iTabs - 1
   WEnd
EndFunc

Func _goHotkey()
    Switch @HotKeyPressed
        Case "+1"
            _go("102")
        Case "+2"
            _go("slob")
        Case "+3"
            _go("kirov")
    EndSwitch
 EndFunc

Func _go($searchObj)
   _findWialon()
   Send('{ESC}')
   Sleep($sendWait)
   Send('f')
   Sleep($sendWait)
   Send($searchObj)
   Sleep($sendWait)
   Send('{DOWN}')
   Sleep($sendWait)
   Send('{ENTER}')
EndFunc

Func _Exit()
   TrayTip("", "Stop HotWialon", 5)
   Exit 0
EndFunc