Author Topic: Скрипт по отправке писем в форме/Сколько будет в рублях?  (Read 11229 times)

0 Members and 5 Guests are viewing this topic.

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
если бы это было так просто :-( я бы конечно уже написал себе сам :-((((

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
Про марафонский забег не понял :-(
Да это нужно, но для тех кто это делал 100 раз, это максимум 30 минут... думаю нормальная цена....

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
Как кликать по кнопочке разобрался ( она меняет статус, и на нее уже не попадает)

Не разобрался, как "листать странички"
Как кликать на правильном письме
Как вставлять текст и картинку
И как поле этого преходить на след кн.письмо
И как понимать что это последняя и надо листать страницу.....

Подсказывайте :-)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Как кликать по кнопочке разобрался ( она меняет статус, и на нее уже не попадает)

Не разобрался, как "листать странички"
Как кликать на правильном письме
Как вставлять текст и картинку
И как поле этого преходить на след кн.письмо
И как понимать что это последняя и надо листать страницу.....

Подсказывайте :-)

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Написать.bmp", -1, 100) // ищем правильное письмо
   LCLICK($_return1, $_return2)
   WAIT(1)
   
   // тут действия с этим письмом или я не знаю что там у тебя
   
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Конец страницы.bmp", -1, 100) // если не нашли Написать.bmp то ищем кнопку конец страницы
      LCLICK($_return1, $_return2)
      WAIT(5)
   ELSE
      WHEELDOWN(3) // если не нашли не Написать.bmp не Конец страницы.bmp то крутим колесико вниз.
      WAITMS(500)
   END_IF
END_IF

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
Спасибо, а что этот код делает?


   WAIT(1)
 
   // тут действия с этим письмом или я не знаю что там у тебя
 
Тут надо просто
1. Вставить текст ( как его вставлять?)
2. Вставить картинку с диска ( как ее вставить?)
3. Нажать кн. отправить
4. Закрыть окно (надо нажать крестик)
5. Далее найти следующую кн. отправить письмо ( как не кликнуть на это же письмо?) нужен хелп
6. Дойдя до конца страницы подобным образом, перейти на след страницу ( подскажите как перейти?)
« Last Edit: November 24, 2015, 09:27:15 PM by Laa911 »

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
---------------------------
Error
---------------------------
Файл D:\CliccerMan v.4.11.New\Написать.bmp не найден
---------------------------
OK   
---------------------------

- тут надо добавить картинку почтовой кнопки?

Может лучше и быстрее будет через ctrl+f найти фразу Написать сообщение чем через картинку?



---------------------------
Error
---------------------------
Файл D:\CliccerMan v.4.11.New\Конец страницы.bmp не найден
---------------------------
OK   
---------------------------

Такой кнопочки нет, или что это должно быть?

« Last Edit: November 24, 2015, 09:33:59 PM by Laa911 »

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
Может хотя бы кто то подскажет как организовать цикл для перехода между ссылками?

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
Подскажите как же его докрутить что бы заработал :-(((

Code: [Select]
LCLICK(1700,300)  // 15790320 кликаем что бы перейти в другоое окно
//почему то кликает в окно кликермена :-( Хотя он не попадает в эти координаты, и почему то команды ниже не работают, и часто виснет :-((( кликермен win10 64х
 

WAITMS (20)
KEYDOWN (#CTRL) // Жмем Ctrl+F для поиска текста
WAITMS (20)
KEYDOWN (#F)
WAITMS (20)
KEYUP (#F)
KEYUP (#CTRL)
WAITMS(20)


KEYSTRING("написать", 20) // ищем текст на странице
WAITMS(40)

GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 3315455) // кликаем на оранжевом цвете найденного текста
WAITMS(20)

CLICK(933,560) // Кликаем на поле куда вставляем текст (интересно, можно найти хендл окна, что бы в него вставить?)
WAITMS (20)
 
//Вставляем текст из буфера отправляем сообщение текст Ctrl+V (дописать)
// Может какая есть правильная команда для вставки из буфера? или только команда клавиш ( не знаю)

  KEYDOWN (#CTRL) // Жмем отправить сообщение Ctrl+Enter
  WAITMS (20)
  KEYDOWN (#Enter)
   WAITMS (20)
     KEYUP (#CTRL)
     KEYUP (#Enter)
   WAITMS(20)
 

CLICK(1199,109) //Жмем крестик на диалоговом окне, что бы закрыть диалоговое окно
WAITMS(20)

 KEYPRESS(#ENTER) //  Жмем Enter ,что бы перейти в поиске на след отправить
WAITMS(20)

//Надо как то понять когда последний найден, что бы не уйти на начало поиска по странице ( не знаю как)
//после того как найден последний, надо перейти на новую страницу ( не знаю как)
// http://machinebook.ru/companies?page=i+1 видимо нужен где то поставить цикл ( не знаю как и по какому условию)
   
LCLICK($_return1+5, $_return2+5) // не знаю зачем это тут


 
WAITMS(70)
END_IF

WAITMS(10) //WAIT(1)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Вот что удалось написать, работает клик по "Написать сообщение" и переход на следующую страницу.
Непонятно пока какой текст надо вставлять в письмо, это одна строка или несколько?

Это для мазиллы, в хроме нужно изменить цвет поиска выделения.
Code: (clickermann) [Select]
#name "Machinebook v1.0"

WAITMS(200)
SETKBLAYOUT(WNDFIND("- Machinebook v1", 0), 1049) //1033 En 1049 Ru
WAITMS(50)
LCLICK(1490,244)  // клик по странице для фокуса
WAITMS(50)


SUB(paste)
   // здесь будет код для вставки текста письма
END_SUB


start:

KEYDOWN (#CTRL) // Ctrl+F
WAITMS (60)
KEYDOWN (#F)
WAITMS (60)
KEYUP (#F)
KEYUP (#CTRL)
WAITMS(50)
KEYPRESS(#DELETE) // удаляем предыдущий поиск
WAITMS(50)

TOCLIP("Написать сообщение") // Вводим текст для поиска
WAITMS(50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(200)

WHILE($c < 11)
   FOR($a=0,$a<$c)
      LCLICK(195,1129)  // клик по кнопке Следующее совпадение
      WAITMS(50)
   END_CYC
   
   IF($c = 0)
      INC($c,2)
   ELSE
      INC($c,1)
   END_IF
   
   WAITMS(200)
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 7919672)
      LCLICK($_return1+2, $_return2+2) // кликаем по найденному
      WAITMS(600)
      paste()
      LCLICK(1037,172)  // закрыть письмо
   END_IF
   
   WAITMS(500)
   
   IF($c = 11)
      KEYDOWN (#CTRL) // Ctrl+F
      WAITMS (50)
      KEYDOWN (#F)
      WAITMS (50)
      KEYUP (#F)
      KEYUP (#CTRL)
      WAITMS(50)
      KEYPRESS(#DELETE) // удаляем предыдущий поиск
      WAITMS(50)
     
      TOCLIP(">>") // Вводим текст для поиска
      WAITMS(50)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#V)
      WAITMS (50)
      KEYUP (#V)
      KEYUP (#CTRL)
      WAITMS(200)
     
      GETSCREEN
      IF_PIXEL_IN(0,0, $_xmax,$_ymax, 7919672)
         LCLICK($_return1+2, $_return2+2) // кликаем по найденному
         WAIT(10)
      ELSE
         HALT
      END_IF
   END_IF
END_CYC
$c = 0
GOTO(start)

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
Спасибо! Буду пробовать!

Вставлять необходимо конечно же несколько строк что то типа информационного письма.
а CTRL+V не вставляет весь текст?

Пример:
вафаофвжаввввввввввв
вававав в афа фыа фа фа фа ф
фва фва ва ва ва ыва ва фва ва
ф вафва ва ва ва фва ва фва ф
 фва фа ва фыва фва фыва фы
 

т.е. его просто тут указать, или нужна какие спецкоманды?
SUB(paste)
   // здесь будет код для вставки текста письма
END_SUB

Можете пометить цикл, который кликает по следующим страничкам?
Не могу понять ;0(
« Last Edit: December 04, 2015, 02:09:30 AM by Laa911 »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Для вставки текста придется сделать поиск картинок кнопок, иначе все это может сместиться если там уже было отправлено письмо.
Также скрипт обрабатывает 10 записей на странице, но если их меньше то он все равно отправит 10 писем, некоторым по второму разу  :-\

Без анализа экрана не обойдешься, так как некоторым нельзя отправить письмо, а значит скрипт должен уметь пропускать этот этап, сделал я это путем анализа цвета в заголовке письма (смотри картинку ниже.)

Все координаты (там где помечено комментами) нужно настроить для себя. Проще всего включить в редакторе "Копирование координат мыши", тогда нажав Alt+Q координата мыши вставится в буфер, потом вставляем это в нужное место в скрипте.

В системах выше XP применяется сглаживание что затрудняет использование поиска картинки. То есть если перезапустить браузер изображение в нем может сгладиться немного по другому, и вот мы уже не находим картинку, это надо учитывать. Лечится, как вариант, отключением этого сглаживания.

Вообще много трудностей...

Code: (clickermann) [Select]
#name "Machinebook v1.0"

//http://machinebook.ru/companies?page

WAITMS(200)
SETKBLAYOUT(WNDFIND("- Machinebook v1", 0), 1049) //1033 En 1049 Ru
WAITMS(50)
LCLICK(1490,244)  // клик по странице для фокуса (в любом пустом месте)
WAITMS(50)

start:

KEYDOWN (#CTRL) // Ctrl+F
WAITMS (60)
KEYDOWN (#F)
WAITMS (60)
KEYUP (#F)
KEYUP (#CTRL)
WAITMS(50)
KEYPRESS(#DELETE) // удаляем предыдущий поиск
WAITMS(50)

TOCLIP("Написать сообщение") // Вводим текст для поиска
WAITMS(50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(200)

WHILE($c < 11)
   FOR($a=0,$a<$c)
      KEYPRESS(#ENTER)
      WAITMS(50)
   END_CYC
   
   IF($c = 0)
      INC($c,2)
   ELSE
      INC($c,1)
   END_IF
   
   WAITMS(200)
   GETSCREEN
   IF_PIXEL_IN(0,0, $_xmax,$_ymax, 7919672)
      LCLICK($_return1+2, $_return2+2) // кликаем по найденному
      WAITMS(600)
     
      //==== заполнение и отправка письма =========================================
      $time = $_time_t + 5 // таймер на 5 секунд
      WHILE($time > $_time_t)
         GETSCREEN
         IF(PXL(945,162) = 5066061) // ждем окно ввода письма не более 5 сек
            $time = 0
           
            // поле ввода надо искать по картинке, потому как если там что то уже отправлено то все сместится
            LCLICK(817,319)  // клик по полю ввода текста
            WAITMS(100)
           
            // Файл Текст.txt должен лежать в той же папке где лежит скрипт
            // Для решения возможных проблем с кодировкой, раскладки в кликере и в браузере должны быть Ru !!!
            FOR($a=1,$a<TFCOUNT("Текст.txt")+1) // вставляем текст в поле ввода из файла
               TOCLIP(TFREAD("Текст.txt", $a))
               WAITMS(30)
               KEYDOWN (#CTRL)
               WAITMS (30)
               KEYDOWN (#V)
               WAITMS (30)
               KEYUP (#V)
               KEYUP (#CTRL)
               WAITMS (30)
               KEYPRESS(#ENTER)
               WAITMS (30)
            END_CYC
           
            // тоже самое, эти кнопки надо искать по картинке, они могут сместиться.
            LCLICK(716,418)  // клик по Изображение
            WAITMS(100)
            LCLICK(577,448)  // Клик по Обзор
            WAITMS(100)
           
            WHILE(WNDFIND("Выгрузка файла", 1) = 0) // ждем появления окна выгрузки файла (анализ по заголовку)
               WAITMS(100)
            END_CYC
           
            TOCLIP("C:\Portable\Clickermann\projects\4.11\031\Image.jpg") // путь до картинки
            WAITMS(30)
            KEYDOWN (#CTRL)
            WAITMS (30)
            KEYDOWN (#V)
            WAITMS (30)
            KEYUP (#V)
            KEYUP (#CTRL)
            WAITMS (30)
            KEYPRESS(#ENTER)
            WAITMS (30)
           
            // тоже самое, эти кнопки надо искать по картинке, они могут сместиться.
            LCLICK(807,449)  // Клик по кнопке Добавить
            WAITMS(200)           
            LCLICK(982,771)  // отправляем сообщение
            WAIT(1) // ждем нужное время
           
         ELSE
            WAITMS(50)
         END_IF
      END_CYC
      //=============================================
   ELSE
      LOGWRITE ("Написать сообщение не найдено!")
      LOGSHOW (1, 100,100)
      HALT
   END_IF
   
   WAITMS(500)
   
   IF($c = 11) // после 10 отправленных писем ищем конец страницы
      KEYDOWN (#CTRL) // Ctrl+F
      WAITMS (50)
      KEYDOWN (#F)
      WAITMS (50)
      KEYUP (#F)
      KEYUP (#CTRL)
      WAITMS(50)
      KEYPRESS(#DELETE) // удаляем предыдущий поиск
      WAITMS(50)
     
      TOCLIP(">>") // Вводим текст для поиска
      WAITMS(50)
      KEYDOWN (#CTRL)
      WAITMS (50)
      KEYDOWN (#V)
      WAITMS (50)
      KEYUP (#V)
      KEYUP (#CTRL)
      WAITMS(200)
     
      GETSCREEN
      IF_PIXEL_IN(0,0, $_xmax,$_ymax, 7919672)
         LCLICK($_return1+2, $_return2+2) // кликаем по найденному (переход на следующую страницу)
         WAIT(10) // задержка на время загрузки страницы
      ELSE
         LOGWRITE ("Страницы кончились, стоп.")
         LOGSHOW (1, 100,100)
         HALT
      END_IF
   END_IF
END_CYC
$c = 0
GOTO(start)
« Last Edit: December 04, 2015, 10:01:38 AM by Oraven »

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Oraven, прошу прощения за оффтопик, но прикланяюсь перед вами. Очень большая проделанная работа по форуму, восхищаюсь просто

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
А как можно еще автоматизировать в цилке переход между страницами

цикл от i = i до 700
http://machinebook.ru/companies?page=i
Как можно это передать в броузер, и заставить его перейти, может есть какая то команда перехода по ссылке?

Laa911

  • Освоившийся
  • **
  • Posts: 61
    • View Profile
Ставлю килик на координатах браузера
Но почему то при нажатии плей, в кликере.
Он кликает в тексте самого кликера ;-(((