Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Ri

Pages: [1]
1
Биржа труда / Re: Ищу програмиста
« on: August 28, 2017, 05:18:17 PM »
Попросите питонистов, на Питоне парсер делать проще)

2
К сожалению первый способ не подошел, все равно не продолжается, а цвета он находит нормально, я проверил без автозапуска скрипта и приложения. Не знаю что и делать(
Возможно такое, что во время снятия скриншота цвета не успевают прогружаться? Сохраните скриншот, посмотрите, что там есть.
Насчёт своего совета с отключением повтора я точно не уверена, не работала с автозапуском.

3
Quote
Но у меня каждый раз 1-ая часть повторяеться, т.е. скрипт дальше не идет.
Возможно, таких цветов нет в куске экрана (0,0,261,236) либо скрипт не успевает их найти. Допишите ELSE, чтобы узнать. Например:
Code: (clickermann) [Select]
IF_PIXEL_IN(0,0,261,236,16038,350881)
  ...
ELSE
  PRINT("Что-то случилось")
  WAITMS(100)
END_IF
Ещё как вариант можно подождать, пока цвет появится (пример есть в редакторе редактора Шаблоны - Циклы, условия - Ожидание цвета IF_PIXEL_IN).
Quote
Как сделать так чтобы 1-ая часть сработало один раз, а затем работала только 2-ая до перезапуска компа.
В главном окне кликера поставьте выполнение 1 раз. Режим выполнения - Фиксированное 1 - Применить.
Запускайте код 2й части в цикле. Например, запускать с таймером или n-ное количество раз. Код с примером таймера  также есть в Шаблонах.

4
Пардон, нашла в справке  ::)

5
Здравствуйте.
Есть ли в Clickerman логические операторы OR AND XOR NOT? Просмотрела справку, форум, не нашла.
Если их нет, может быть они планируются?

6
Здравствуйте.
Вместо "and_if" надо писать "end_if". Программа не понимает код и вкладывает goto в ELSE, а goto работает в одном уровне вложенности.
А почему вы не используете циклы WHILE или FOR? Посмотрите в редакторе Clickermann'а Шаблоны-> Графика -> Ожидание картинки, думаю, вам подойдёт.

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

7
Воспользовалась советами Vint'а, скрипт получилось сделать :D
Идею запоминать координаты отбросила, т.к. скрипт стал выполняться с нормальной скоростью после урезки места поиска картинки + подумала, что в некоторых местах координатами бы не обошлось (появится/ не появиться картинка) 
TAB'ы убрала в циклы и сделала один большой цикл  без повторения кода 2 раза.
Ещё раз спасибо за ответы)

8
Quote
По полям ввода в браузере тоже должно переключаться по TAB.
Тут я опасаюсь, что один из 12и TABов подряд может сбиться. А в начале  TABом просто не перейдёшь.
Quote
Следующий пациент это как раз и есть на 30 пкс ниже?
Да, 1 цикл - 1 человек. $i - просто для конечного количества выполнений цикла.

Спасибо за хорошие советы, попробую оптимизировать скрипт.

9
Почему у тебя $_return вне условия поиска? Это системные переменные для вывода найденных координат. Значения в них не обнуляются даже после остановки скрипта. Поэтому они должны быть всегда в условиях поиска для возврата найденных значений.
У тебя сразу в начале кода
Code: (clickermann) [Select]
LCLICK($_return1, $_return2)При первом запуске кликера там будет 0,0 а потом последние найденные координаты.

И вообще гораздо лучше экспортировать таблицу в TXT в разделителями по Tab и работать потом с файлом напрямую.

1. Согласна, не правильно, но в данном случае он отрабатывает и отрабатывает только 1 раз. Эту строку можно вообще удалить, я её для подстраховки написала, чтобы кликер точно щёлкнул.   :)
2. Мне надо, чтобы человек непосредственно видел, что происходит, поэтому такие заморочки с Экселем. Сам Эксель не гонит, я подогнала табами и стрелками) а вот с браузером проблемки

10
Каждую итерацию коо клика переносятся ~ на 30 пикселей вниз.
Мой скрипт довольно длинный, но несложный. Он копирует значения из Excel, и в браузере вставляет их. Так надо сделать n раз (примерно 25-50). Первый раз я ищу, куда кликать, сравнивая картинки, но это занимает долгое время. Так что я запоминаю координаты, создаю цикл с таким же кодом (кроме поиска картинки), и в цикле уже кликаю в конкретное место. Первый повтор всё ок, потом мышка спускается вниз (примерно y => y+30px)  каждую итерацию. Если тестировать куски кода, то клики не сдвигаются. Помогите, пожалуйста, разобраться  :-[
Code: (clickermann) [Select]
$n_patient = 5 // ЗАПОЛНИТЬ количеством пациентов в файле

//нажать на поле
LCLICK($_return1, $_return2)
WAITMS (100)

//Копировать значение
WAITMS (150)
KEYDOWN (#CTRL)
WAITMS (200)
KEYDOWN (#C)
WAITMS (1000)
KEYUP (#C)
KEYUP (#CTRL)

// первый переход в гугл, получение координат
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,50, "chrome.bmp", -1, 80)    //панель mustb сверху
   LCLICK($_return1, $_return2)
   $chrome_x = $_return1
   $chrome_y = $_return2
   WAITMS(1000)
END_IF

// жмяк на Добавить
GETSCREEN // снимок
COLORMODE(6) // цветокоррекция снимка
IF_PICTURE_IN (1000,0,$_xmax,200, "add.bmp", -1, 60) // поиск с 60% совпадением
   LCLICK($_return1, $_return2)
   $add_x = $_return1+10
   $add_y = $_return2+10
   WAITMS(1500)
END_IF


//жмяк в поле ввода иин
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (400,200, 1500,400, "leftfromlupa.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   $leftfromlupa_x = $_return1
   $leftfromlupa_y = $_return2
   WAITMS(1000)
END_IF

//вставка иин
KEYDOWN (#CTRL)
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (150)

//поиск по иин
KEYDOWN (#ENTER)
WAITMS (150)
KEYUP (#ENTER)
WAITMS (500)    // ждём, пока выскочит

//жмяк по выскочившему фио
LCLICK($_return1, $_return2+50)
$poppedup_fio_x = $_return1
$poppedup_fio_y = $_return2+50
WAITMS (500)

//первый переход в Эксель, получение координат
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0,$_xmax,50, "excel.bmp", -1, 60)
   LCLICK($_return1, $_return2)
   $excel_x = $_return1
   $excel_y = $_return2
   WAITMS(1000)
END_IF

//Переход на поле справа
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//Копировать значение
WAITMS (150)
KEYDOWN (#CTRL)
WAITMS (150)
KEYDOWN (#C)
WAITMS (150)
KEYUP (#C)
KEYUP (#CTRL)

// переход в гугл
LCLICK($chrome_x, $chrome_y)
WAITMS(1000)


 // переход в поле № снимка
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (400,300, 1000,700, "shotnumber.bmp", -1, 100)  // скрин содержит и надпись Дата осмотра
   LCLICK($_return1+200, $_return2+20)
   $shotnumber_x = $_return1+200
   $shotnumber_y = $_return2+30
   WAITMS(1000)
END_IF

//вставка номера снимка
KEYDOWN (#CTRL)
WAITMS (150)
KEYDOWN (#V)
WAITMS (150)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (150)

//переход в Эксель
LCLICK($excel_x, $excel_y)
WAITMS(1000)


//Переход на поле справа
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//Копировать даты
WAITMS (150)
KEYDOWN (#CTRL)
WAITMS (150)
KEYDOWN (#C)
WAITMS (150)
KEYUP (#C)
KEYUP (#CTRL)

// переход в гугл
LCLICK($chrome_x, $chrome_y)
WAITMS(1000)

//Переход через Дообследование
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//на Дату осмотра
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//вставка даты
KEYDOWN (#CTRL)
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (150)

//Переход через Направлен
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//на Дозу
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//ввод дозы = 5
KEYDOWN (#5)
WAITMS (100)
KEYUP (#5)
WAITMS (100)


//переход в Эксель
LCLICK($excel_x, $excel_y)
WAITMS(1000)

//Переход на поле справа
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//Копировать дату след посещения
WAITMS (150)
KEYDOWN (#CTRL)
WAITMS (150)
KEYDOWN (#C)
WAITMS (1000)
KEYUP (#C)
KEYUP (#CTRL)

// переход в гугл
LCLICK($chrome_x, $chrome_y)
WAITMS(1000)

//Переход на дату след посещения
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//вставка даты  след посещения
KEYDOWN (#CTRL)
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (150)


//переход в Эксель
LCLICK($excel_x, $excel_y)
WAITMS(1000)

//Переход на поле справа (дата первого посещения)
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//Копировать дату первого посещения
WAITMS (150)
KEYDOWN (#CTRL)
WAITMS (150)
KEYDOWN (#C)
WAITMS (150)
KEYUP (#C)
KEYUP (#CTRL)

// переход в гугл
LCLICK($chrome_x, $chrome_y)
WAITMS(1000)

//переход в подвкладку Заключение      !!!
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (500,300,900,500, "conclusion.bmp", -1, 95)
   LCLICK($_return1, $_return2)
   $conclusion_x = $_return1
   $conclusion_y = $_return2+40
   WAITMS(1000)
   LCLICK($_return1, $_return2)  //подвкладка опустится, будет видна кнопка Отмена
END_IF

//переход через Данные учёта (при Табе 1я ссылка)
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//и переход через ссылку Заключение
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)

//на Дату первого посещения
KEYDOWN (#TAB)
WAITMS (100)
KEYUP (#TAB)
WAITMS (100)


//вставка даты первого посещения
KEYDOWN (#CTRL)
WAITMS (150)
KEYDOWN (#V)
WAITMS (150)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (150)

//жмяк отмены
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (750,450, $_xmax,$_ymax, "cancel.bmp", -1, 90)
   LCLICK($_return1, $_return2)
   $cancel_x = $_return1
   $cancel_y = $_return2   
   WAITMS(500)
END_IF

//переход в Эксель
LCLICK($excel_x, $excel_y)
WAITMS(1000)

//убираем выделение поля
KEYDOWN (#ENTER)
WAITMS (150)
KEYUP (#ENTER)
WAITMS (500)    // ждём, пока выскочит

//переход на ИИН след человека
KEYDOWN (#DOWN)   // переведёт строку вниз
WAITMS (100)
KEYUP (#DOWN)
WAITMS (100)
KEYDOWN (#LEFT)   // переведёт строку влево      1
WAITMS (100)
KEYUP (#LEFT)
WAITMS (100)
KEYDOWN (#LEFT)   // переведёт строку влево    2
WAITMS (100)
KEYUP (#LEFT)
WAITMS (100)
KEYDOWN (#LEFT)   // переведёт строку влево   3
WAITMS (100)
KEYUP (#LEFT)
WAITMS (100)
KEYDOWN (#LEFT)   // переведёт строку влево    4
WAITMS (100)
KEYUP (#LEFT)
WAITMS (100)

$i = 0
print($i)
print($n_patient)
WHILE($i < $n_patient)
  print($i)
  print("Вошёл в цикл")
  //нажать на поле
  //LCLICK(-1,-1)
  //WAITMS (10000)

  //Копировать значение
  WAITMS (2000)
  KEYDOWN (#CTRL)
  WAITMS (200)
  KEYDOWN (#C)
  WAITMS (200)
  KEYUP (#C)
  WAITMS (100)
  KEYUP (#CTRL)
  WAITMS (1000)
  print("Скопировал")
 
  // жмяк в гугл
  LCLICK($chrome_x, $chrome_y)
  WAITMS(1000)
  print("Перешёл в гугл")
 
  // жмяк на кнопку Добавить
  LCLICK($add_x, $add_y)
  WAITMS(5000)
  print("Нажал на кнопку Добавить")

  // жмяк в поле ввода иин
  LCLICK($leftfromlupa_x, $leftfromlupa_y)
  WAITMS(1500)
  print("Нажал в поле ввода иин")

  //вставка иин
  KEYDOWN (#CTRL)
  WAITMS (100)
  KEYDOWN (#V)
  WAITMS (100)
  KEYUP (#V)
  KEYUP (#CTRL)
  WAITMS (150)
  print("Вставил иин")

  //поиск по иин. нажать в поле, чтобы сайт поискал
  KEYDOWN (#ENTER)
  WAITMS (150)
  KEYUP (#ENTER)
  WAITMS (500)    // ждём, пока выскочит
  print("Нажал Enter, чтобы сайт поискал")

  //жмяк по выскочившему фио
  LCLICK($poppedup_fio_x, $poppedup_fio_y)
  WAITMS(1000)
  print("Нажал по выскочившему фио")

  //переход в Эксель
  LCLICK($excel_x, $excel_y)
  WAITMS(1000)

  //Переход на поле справа
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)

  //Копировать значение
  WAITMS (150)
  KEYDOWN (#CTRL)
  WAITMS (150)
  KEYDOWN (#C)
  WAITMS (150)
  KEYUP (#C)
  KEYUP (#CTRL)

  // переход в гугл
  LCLICK($chrome_x, $chrome_y)
  WAITMS(1000)

  // переход в поле № снимка
  LCLICK($shotnumber_x, $shotnumber_y)
  WAITMS(50)
  print("Перешёл на номер снимка")
  WAITMS(1000)

  //вставка номера снимка
  KEYDOWN (#CTRL)
  WAITMS (150)
  KEYDOWN (#V)
  WAITMS (150)
  KEYUP (#V)
  KEYUP (#CTRL)
  WAITMS (150)
  print("Вставил номер снимка")

  //переход в Эксель
  LCLICK($excel_x, $excel_y)
  WAITMS(1000)
  print("Перешёл в Эксель")


  //Переход на поле справа
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)

  //Копировать дату осмотра
  WAITMS (150)
  KEYDOWN (#CTRL)
  WAITMS (150)
  KEYDOWN (#C)
  WAITMS (150)
  KEYUP (#C)
  KEYUP (#CTRL)
  print("Скопировал дату осмотра")

  // переход в гугл
  LCLICK($chrome_x, $chrome_y)
  WAITMS(1000)
  print("Перешёл в гугл")
 

  //Переход через Дообследование
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)
  print("TAB")

  //на Дату осмотра
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)
  print("TAB")

  //вставка даты
  KEYDOWN (#CTRL)
  WAITMS (100)
  KEYDOWN (#V)
  WAITMS (100)
  KEYUP (#V)
  KEYUP (#CTRL)
  WAITMS (150)
  print("Вставил дату осмотра")

  //Переход через Направлен
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)

  //на Дозу
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)

  //ввод дозы = 5
  KEYDOWN (#5)
  WAITMS (100)
  KEYUP (#5)
  WAITMS (100)


  //переход в Эксель
  LCLICK($excel_x, $excel_y)
  WAITMS(1000)

  //Переход на поле справа
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)

  //Копировать дату след посещения
  WAITMS (150)
  KEYDOWN (#CTRL)
  WAITMS (150)
  KEYDOWN (#C)
  WAITMS (1000)
  KEYUP (#C)
  KEYUP (#CTRL)

  // жмяк в гугл
  LCLICK($chrome_x, $chrome_y)
  WAITMS(1000)

  //Переход на дату след посещения
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)

  //вставка даты  след посещения
  KEYDOWN (#CTRL)
  WAITMS (100)
  KEYDOWN (#V)
  WAITMS (100)
  KEYUP (#V)
  KEYUP (#CTRL)
  WAITMS (150)


  //переход в Эксель
  LCLICK($excel_x, $excel_y)
  WAITMS(1000)

  //Переход на поле справа (дата первого посещения)
  KEYDOWN (#TAB)
  WAITMS (100)
  KEYUP (#TAB)
  WAITMS (100)


  //Копировать дату первого посещения
  WAITMS (150)
  KEYDOWN (#CTRL)
  WAITMS (150)
  KEYDOWN (#C)
  WAITMS (150)
  KEYUP (#C)
  KEYUP (#CTRL)

  // жмяк в гугл
  LCLICK($chrome_x, $chrome_y)
  WAITMS(1000)

  //переход в подвкладку Заключение
  LCLICK($conclusion_x, $conclusion_y)
  WAITMS(1000)
  print("Перешёл в подвкладку Заключение")


  //переход через Данные учёта (при Табе 1я ссылка)
  KEYDOWN (#TAB)
  WAITMS (150)
  KEYUP (#TAB)
  WAITMS (2000)    //!!!
  print("Внимание TAB")

  //и переход через ссылку Заключение
  KEYDOWN (#TAB)
  WAITMS (150)
  KEYUP (#TAB)
  WAITMS (2000)
  print("Внимание TAB")

  //на Дату первого посещения
  KEYDOWN (#TAB)
  WAITMS (150)
  KEYUP (#TAB)
  WAITMS (2000)
  print("Внимание TAB, потом вставка и Enter")


  //вставка даты первого посещения
  KEYDOWN (#CTRL)
  WAITMS (150)
  KEYDOWN (#V)
  WAITMS (150)
  KEYUP (#V)
  KEYUP (#CTRL)
  WAITMS (2000)     //150
  print("Вставил дату первого посещения")

  //жмяк отмены
  LCLICK($cancel_x, $cancel_y)
  WAITMS(1000)
  print("Нажал на Отмену")

  //переход в Эксель
  LCLICK($excel_x, $excel_y)
  WAITMS(1000)

  //убираем выделение поля
  KEYDOWN (#ENTER)
  WAITMS (150)
  KEYUP (#ENTER)
  WAITMS (500)   

  //переход на ИИН след человека
  KEYDOWN (#DOWN)   // переведёт строку вниз
  WAITMS (100)
  KEYUP (#DOWN)
  WAITMS (100)
  KEYDOWN (#LEFT)   // переведёт строку влево      1
  WAITMS (100)
  KEYUP (#LEFT)
  WAITMS (100)
  KEYDOWN (#LEFT)   // переведёт строку влево    2
  WAITMS (100)
  KEYUP (#LEFT)
  WAITMS (100)
  KEYDOWN (#LEFT)   // переведёт строку влево   3
  WAITMS (100)
  KEYUP (#LEFT)
  WAITMS (100)
  KEYDOWN (#LEFT)   // переведёт строку влево    4
  WAITMS (100)
  KEYUP (#LEFT)
  WAITMS (100)
  print("Конец итерации")
  inc($i)
END_CYC

11
Большое спасибо. В силу того, что мой кликер часто зависает (ищу совпадения по фрагментам картинок и забываю отменять повтор  ???)  сохраняю бекап скриптов в Notepad++. Теперь намного понятней читать скрипт

Pages: [1]