Author Topic: Помогите реализовать  (Read 4090 times)

0 Members and 1 Guest are viewing this topic.

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Помогите реализовать
« on: January 24, 2016, 09:07:36 PM »
Товарищи, выручайте!

Открыт блокнот, в котором написаны данные для входа на сайт вида логин:пароль
Что надо от скрипта.

Открыт сайт в свернутом браузере. Он копирует логин, открывает сайт, вставляет в нужное поле, снова открывает блокнот, копирует пароль, вставляет в браузер, нажимает кнопку "Войти". Потом, спустя пару секунд, нажимает кнопку выйти. Открывает блокнот, спускается на слеущую строчку и повторяет действия до тех пор, пока в блокноте не закончатся данные вида логин:пароль

Реально ли такое?

Doda

  • Guest

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #2 on: January 24, 2016, 09:23:07 PM »
Оооо, замечательно, а как еще добавить пару кликов между зашел на аккаунт и вышел с аккаунта?

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #3 on: January 24, 2016, 09:25:19 PM »
И где там указать где находится поле логина, пароля и кнопка вход?) в скрипте

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #4 on: January 24, 2016, 10:45:34 PM »
Подскажите, а какой командой брать всего одно слово txt и постоянно вставлять его? Т.е. у меня будет 1 текстовик с логинами и паролями, а еще один с одним словом и он будет постоянно вводить его

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #5 on: January 24, 2016, 11:11:35 PM »
Если вас не затруднит, не напишите как сделать это? я в этом вообще ничего не понимаю, спасибо!

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #6 on: January 25, 2016, 01:09:12 AM »
Code: (clickermann) [Select]
IF(TFCOUNT("LogPass.txt") > $count)
   INC($count,1)
ELSE
   $count = 1
END_IF
$str = TFREAD ("LogPass.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
$pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
 
LCLICK(208,332) // êëèê ïî ïîëþ ëîãèíà
WAITMS (100)
TOCLIP($log) // ñêîïèðîâàòü â áóôåð
WAITMS (100)
KEYDOWN (#CTRL) // âñòàâèòü
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
 
LCLICK(226,389) // êëèê ïî ïîëþ ïàðîëÿ
WAITMS (100)
TOCLIP($pass)
WAITMS (100)
KEYDOWN (#CTRL)
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
 
LCLICK(224,463) // êëèê ïî "Âõîä"
WAITMS(5000)
LCLICK(340,14) // êëèê ñàéò
WAITMS (4000)
LCLICK(980,203) // êëèê âîéòè
WAITMS (4000)
LCLICK(219,425) // êëèê âîéòè ñòèì
WAITMS (4000)

$time = $_time_t + 100
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(1000)
      $check = 0
      WHILE($check = 0)

$time = $_time_t + 100
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(1000)
      $check = 0
      WHILE($check = 0)   

IF(TFCOUNT("Code.txt") > $count)
   INC($count,1)
ELSE
   $count = 1
END_IF
$str = TFREAD ("Code.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
 
LCLICK(626,475) // ???? ?? ???? ??????
WAITMS (50)
TOCLIP($log) // ??????????? ? ?????
WAITMS (50)
KEYDOWN (#CTRL) // ????????
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (500)

LCLICK(630,506) // êëèê ñàéò
WAITMS (1000)   
     
$time = $_time_t + 100
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "4.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(1000)
      $check = 0
      WHILE($check = 0)

LCLICK(170,14) // êëèê ñàéò
WAITMS (2000)

$time = $_time_t + 100
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "5.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(1000)
      $check = 0
      WHILE($check = 0)

$time = $_time_t + 100
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "6.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(1000)
      $check = 0
      WHILE($check = 0)

$time = $_time_t + 100
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "7.bmp", -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(1000)
      $check = 0
      WHILE($check = 0)      
   


Вот код, почему-то не берет новую строчку, после завершения и нового старта. Как быть?

Doda

  • Guest
Re: Помогите реализовать
« Reply #7 on: January 25, 2016, 01:13:42 AM »
у тебя циклы не закрытые здесь.  каждый вайл должен закрываться

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите реализовать
« Reply #8 on: January 25, 2016, 07:30:30 AM »
Бездумно копипастить это конечно смело, но код не рабочий.

Вот верный вариант
Code: (clickermann) [Select]
IF(TFCOUNT("LogPass.txt") > $count)
   INC($count,1)
ELSE
   $count = 1
END_IF
$str = TFREAD ("LogPass.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
$pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))

LCLICK(208,332) // клик по полю логина
WAITMS (100)
TOCLIP($log) // скопировать в буфер
WAITMS (100)
KEYDOWN (#CTRL) // вставить
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)

LCLICK(226,389) // клик по полю пароля
WAITMS (100)
TOCLIP($pass)
WAITMS (100)
KEYDOWN (#CTRL)
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)

LCLICK(224,463) // клик по "Вход"
WAITMS(5000)
LCLICK(340,14) // клик сайт
WAITMS (4000)
LCLICK(980,203) // клик войти
WAITMS (4000)
LCLICK(219,425) // клик войти стим
WAITMS (4000)

$check = 0 // перед циклом задаем значение переменной, например 0
WHILE($check = 0) // цикл с условием, если переменная равна 0 то выполняется
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
      $check = 1 // если картинка найдена меняем значение переменной на другое число, цикл перестанет повторяться и выполнение пойдет дальше
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

IF(TFCOUNT("Code.txt") > $count2)
   INC($count2,1)
ELSE
   $count2 = 1
END_IF
$str = TFREAD("Code.txt", $count2)

LCLICK(626,475)
WAITMS (50)
TOCLIP($str) // текст в буфер
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (500)

LCLICK(630,506) // клик сайт
WAITMS (1000)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "4.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

LCLICK(170,14) // клик сайт
WAITMS (2000)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "5.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "6.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "7.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

вот это место
Quote
Code: (clickermann) [Select]
IF(TFCOUNT("Code.txt") > $count)
   INC($count,1)
ELSE
   $count = 1
END_IF
$str = TFREAD ("Code.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)

LCLICK(626,475)
WAITMS (50)
TOCLIP($log)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (500)

Если у тебя там одно слово то писать надо так
Code: (clickermann) [Select]
LCLICK(626,475)
WAITMS (50)
TOCLIP("Сюда вписываешь код") // слово отправляемое в буфер обмена
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (500)

Если слов несколько то писать нужно так, и переменная содержащая отсчет строк должна быть с другим именем
Code: (clickermann) [Select]
IF(TFCOUNT("Code.txt") > $count2)
   INC($count2,1)
ELSE
   $count2 = 1
END_IF
$str = TFREAD("Code.txt", $count2)

LCLICK(626,475)
WAITMS (50)
TOCLIP($str) // текст в буфер
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (500)
« Last Edit: January 25, 2016, 07:33:24 AM by Oraven »

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #9 on: January 25, 2016, 11:10:07 AM »
Большое спасибо, но код рабочий оказался.  ;D Прям сам в шоке)

Можно ли это как-то реализовать в свернутом режиме? Просто помню, кто-то говорил, что вроде в мазиле сликерман работает в свернутом режиме, нет?

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #10 on: January 25, 2016, 11:13:17 AM »
Можно сделать так, что если вылазит окно с ошибкой, он нажмет пропустит 2 действия и пойдет дальше по заданному алгоритму

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите реализовать
« Reply #11 on: January 25, 2016, 12:31:32 PM »
Анализ графики в свернутом окне невозможен так как она там не отображается. Клики работать будут. Но это не твой вариант так как зажатия в оконном режиме не возможны. Ctrl+V не прокатит.

Можно сделать так, что если вылазит окно с ошибкой, он нажмет пропустит 2 действия и пойдет дальше по заданному алгоритму

Конечно можно, путем добавление переменных и условий в соответствующие места скрипта.
 

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #12 on: January 25, 2016, 05:14:33 PM »
Спасибо вам большое, вы меня не первый раз уже выручаете!

Я был бы вам очень благодарен, если бы вы написали пример такой переменной. Как ее реализовать.

И скажите, реален ли алгоритм на одних только фото? Т.е. по поиску картинки и пару кликов.

Что мне надо.
1. Открыт браузер. Две вкладки.
По стандарту открыта первая вкладка.  Там в определенные поля вводится логин:пароль и кнопка войти.  Эта строчка удаляется и заносится в другой текстовый документ.
Может быть, что вылазит ошибка, он удаляет просто эту строчку и перегружает страницу и делает все снова.
2. Переходит на вторую вкладку.обычный клик
3. Нажимает войти. Ждет появления картинки. Как только появляется, нажимает на нее.
4. Ждет дальше появления картинки и нажимает.
5. Опять ждет и нажимает.
Если тут вылазит сообщение,что раньше это действие было выполненно, то он выходит из аккаунта.
6. Переходит на первую вкладку. Там выходит.
7. Нажимает "войти"
8= действия повторяются.

Сейчас приложу скриншоты, писал с телефона

Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #13 on: January 25, 2016, 05:41:39 PM »
1. Вот поле входа: http://prntscr.com/9umamd  Вот код с координатами, правильно?
Code: (clickermann) [Select]
IF(TFCOUNT("LogPass.txt") > $count)
   INC($count,1)
ELSE
   $count = 1
END_IF
$str = TFREAD ("LogPass.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
$pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))

LCLICK(208,332) // клик по полю логина
WAITMS (100)
TOCLIP($log) // скопировать в буфер
WAITMS (100)
KEYDOWN (#CTRL) // вставить
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
 
LCLICK(226,389) // клик по полю пароля
WAITMS (100)
TOCLIP($pass)
WAITMS (100)
KEYDOWN (#CTRL)
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
 
LCLICK(224,463) // клик по "Вход"
WAITMS(6000)

TFWRITE ("Good.txt", $str)
TFDELETE ("LogPass.txt", 1)

Возможный вариант ошибки: фаил "bad.bmp". Если вылазит такое, то строчка из LogPass.txt удаляется, Вставляется в Bad.txt
Перегружается страница и все повторяется снова.
Если же ошибка не вылезла, то продолжается выполнение алгоритма.

2.Открывается вторая вкладка:
Code: (clickermann) [Select]
LCLICK(340,14) // клик сайт
WAITMS (6000)

3. Ищет картинку "Steam.bmp"

4. Если вылазит ошибка, то нажимает: "Error.bmp" и переходит к 5 пункту. Если она не влезла, то тоже переходит к 5 пункту

5. Ждет появления и нажимает: "Join.bmp"

6. Ждет появления и нажимает: "Part.bmp"

7. Ждет появления и нажимает: "Code.bmp"

8. Если вылазит определенное окно, он пропускает этот ход, если все нормально. то там будет поле ввода, куда надо ввести "Слово" и нажать на "Activ.bmp"

9. Нажимает "Exit.bmp"

10. Ждет появление "Steam.bmp" (которое в 3 пункте), как только оно появилось он переключается обратно на 1 вкладку.
Code: (clickermann) [Select]
LCLICK(170,14) // клик сайт
WAITMS (2000)

11. Ждет появление "3.bmp", нажимает на него.

12. Нажимает на "4.иьз"

13. Ждет появление "5.bmp", нажимает

14. Ждет 10 секунд. Начинает повтор, до тех пор. пока не будет строк в LogPass.txt




Qwadros

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Помогите реализовать
« Reply #14 on: January 25, 2016, 05:42:16 PM »
Остальные скриншоты я потом сделаю сам. если не сложно, реализуйте это в коде! БОЛЬШОЕ ВАМ СПАСИБО!