Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Kingbobkov on November 25, 2015, 05:53:30 PM

Title: Помогите, всю голову сломал!!!
Post by: Kingbobkov on November 25, 2015, 05:53:30 PM
Доброго дня.
Третий день пытаюсь выполнить следующие условия.
Кто может подскажите пожалуйста, я в этом деле полный нуб.
1. Кликаем координаты
2. Ждём 30 сек.
3. Ищем картинку
4. Если находим картинку #1
5. Возвращаемся в п. #1.
6. Если находим картинку # 2
7. То кликаем новые координаты

* Картинки # 1 и 2 появляются в одних и тех же местах
Title: Re: Помогите, всю голову сломал!!!
Post by: Oraven on November 25, 2015, 07:36:28 PM
Если не найдем картинку 2 то что? После седьмого пункта что?

Code: (clickermann) [Select]
LCLICK(100,100) // 1
WAIT(30) // 2

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100) // если находим 1 то ничего не делаем
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100) // если находим 2
      LCLICK(300, 300) // то кликаем
      WAITMS(100)
   END_IF
END_IF

// после этого скрипт начнется заново
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on November 25, 2015, 07:44:16 PM
По задумке да.
Спасибо большое, приеду домой буду побывать.
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 08:01:21 PM
Доброго дня побывал, побывал.Вот что получилось.Посмотрите что не так.Пожалуйста  :)
Code: (clickermann) [Select]
$x=864
$y=520
$x2=758
$y2=346
$x3=829
$y3=188
DBLCLICK($x3,$y3)     
KEYSTRING("#1")
LCLICK($x,$y) // Кликаем по координатам
WAIT(80)       // Ждем 80 сек.(В идеале запустить поиск картинки и как только одна из двух появится делать следующие действия)
 
GETSCREEN
IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) \\ Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
  WAIT(1)
  LCLICK($x2,$y2)
  WAIT(1)
  DBLCLICK($x3,$y3)     
 KEYSTRING("#1")
 LCLICK($x,$y)
  WAIT(80)
ELSE
IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) \\ Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
     WAIT(3)
     LCLICK($x2,$y2)
     WAIT(1)
 
DBLCLICK($x3,$y3)

     
KEYSTRING("#3")
LCLICK($x,$y)
     WAIT(80) // Ждем 80 сек.(В идеале запустить поиск картинки и как только одна из двух появится делать следующие действия)

GETSCREEN   \\ Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
     SCREENSHOTEX ((543,377, 701,486)
     IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100)
       WAIT(3)
       LCLICK($x2,$y2)
       WAIT(1)
       DBLCLICK($x3,$y3)     
      KEYSTRING("#1")
       LCLICK($x,$y)
       WAIT(80)
     ELSE
     IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) \\ Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
     WAIT(3)
     LCLICK($x2,$y2)
     WAIT(1)
 
DBLCLICK($x3,$y3)

     
KEYSTRING("#9")
LCLICK($x,$y)
     WAIT(80)
     
GETSCREEN
            IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100)
        WAIT(3)
        LCLICK($x2,$y2)
        WAIT(1)
DBLCLICK($x3,$y3)     
KEYSTRING("#1")
LCLICK($x,$y)
        WAIT(80)
      ELSE
      IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100)
       WAIT(3)
       LCLICK($x2,$y2)
       WAIT(1)
 
DBLCLICK($x3,$y3)

     
KEYSTRING("#18")
LCLICK($x,$y)
       WAIT(80)
GETSCREEN
        SCREENSHOTEX ((543,377, 701,486)
        IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) \\ Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
DBLCLICK($x3,$y3)     
KEYSTRING("#1")
LCLICK($x,$y)          WAIT(80)
        ELSE
        IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) \\Если нашли картинку №2 то  закрываем окно с координатами х2,у2  делаем запись в лог и в ночало.
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
 
DBLCLICK($x3,$y3)

     
KEYSTRING("#52")
LCLICK($x,$y)
         WAIT(80)
END_IF
\\И так по кругу до бесконечности
Спасибо
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 08:03:40 PM
Вот схема задумки
Title: Re: Помогите, всю голову сломал!!!
Post by: Oraven on December 06, 2015, 08:27:24 PM
Да кругом одни ошибки, что за
Code: (clickermann) [Select]
KEYSTRING("#52")Ты что хочешь напечатать 52? Потому что эта функция именно так и работает.
Черты комментов не в ту сторону! Вот так правильно //
Лишние скобки и порядочное отсутствие END_IF

Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 08:30:24 PM
Ввод цифры 52 вуказанные координаты .
Он работает, но через раз.
Иногда отрабатвает, а иногда после нахождения 1 картинки останавливается.
И за чёрточки спасибо.
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 08:39:24 PM
Я понимаю как сделать что бы одно из двух условий выполнить, но когда их больше не могу понять.
Title: Re: Помогите, всю голову сломал!!!
Post by: Oraven on December 06, 2015, 08:43:35 PM
Вот все написал, теперь будет работать так как ты хочешь. Только не понял логику с увеличением числа? На сколько нужно увеличивать каждый раз и есть ли предел?
Code: (clickermann) [Select]
$x=864
$y=520
$x2=758
$y2=346
$x3=829
$y3=188

DBLCLICK($x3,$y3)
WAITMS(50)

KEYSTRING("1")
WAITMS(50)

LCLICK($x,$y) // Кликаем по координатам
WAITMS(50)

$check = 0
WHILE($check = 0) // Ждем rартинки и как только одна из двух появится делать следующие действия
   GETSCREEN
   IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) // Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
      WAIT(1)
      LCLICK($x2,$y2)
      $check = 1
      WAIT(1)
   ELSE
      IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) // Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
         DBLCLICK($x3,$y3)
         WAITMS(50)
         
         KEYSTRING("3") // не понял логику увеличения числа?!
         WAITMS(50)
         
         LCLICK($x,$y)
         WAITMS(50)
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 08:51:11 PM
Вначале пишем 1 если не совпало первая картинка то
Потом 3
потом 9
потом 18
потом 36 если до сюда не попала картинка 1 то в начало с записью в лог.
как дальше сделать, чтобы в случии картинки 2 пошел дальнш?
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 08:55:38 PM
 :) Правда в отчаянии был.
Title: Re: Помогите, всю голову сломал!!!
Post by: Oraven on December 06, 2015, 09:01:55 PM
Вот так тогда.
Code: (clickermann) [Select]
$x=864
$y=520
$x2=758
$y2=346
$x3=829
$y3=188

$count = 0
DBLCLICK($x3,$y3)
WAITMS(50)

KEYSTRING("1")
WAITMS(50)

LCLICK($x,$y) // Кликаем по координатам
WAITMS(50)

$check = 0
WHILE($check = 0) // Ждем картинки и как только одна из двух появится делать следующие действия
   GETSCREEN
   IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) // Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
      WAIT(1)
      LCLICK($x2,$y2)
      $check = 1
      WAIT(1)
   ELSE
      IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) // Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
         DBLCLICK($x3,$y3)
         WAITMS(50)
         
         INC($count,1)
         SWITCH($count)
         CASE(1)
            KEYSTRING("3")
         CASE(2)
            KEYSTRING("9")
         CASE(3)
            KEYSTRING("18")
         CASE(4)
            KEYSTRING("36")
            $check = 1
         DEFAULT
         END_SWITCH
         WAITMS(50)
         
         LCLICK($x,$y)
         WAITMS(500)
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 09:04:12 PM
Спасибо.
Буду пробывать :)
Я бы в жизни не сообразил бы.
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 09:16:39 PM
Что-то не пойму, это получается на уровне  case 1, 2 и.т., если появится картинка 1 то кликер застывает а не возвращается в начало.
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 06, 2015, 09:26:50 PM
Сори все отлично .
Спасибо большое .
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 17, 2015, 11:28:20 PM
Доброго времени суток, это снова я :)
Последнее время все чаще чувствую себя деревянным
Не могу в этот скрипт прекрасно работающий
[spoiler]$x=864    // Кнопка Вверх
$y=520    // Кнопка Вверх

$x2=758   // Закрыть окно результата
$y2=346   // Закрыть окно результата

$x3=829   // Окно вводда
$y3=188   // Окно вводда
 
$count = 0
 
DBLCLICK($x3,$y3)
WAITMS(50)
 
KEYSTRING("1")
WAITMS(50)
 
LCLICK($x,$y) // Кликаем по координатам
WAITMS(50)
 
$check = 0
WHILE($check = 0) // Ждем картинки и как только одна из двух появится делать следующие действия
   GETSCREEN
   IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) // Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
      WAIT(1)
      LCLICK($x2,$y2)
      $check = 1
      WAIT(1)
   ELSE
      IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) // Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
         DBLCLICK($x3,$y3)
         WAITMS(50)
 
         INC($count,1)
         SWITCH($count)
         CASE(1)
            KEYSTRING("3")
         CASE(2)
            KEYSTRING("9")
         CASE(3)
            KEYSTRING("18")
                             
            $check = 1
         DEFAULT
         END_SWITCH
         WAITMS(50)
 
         LCLICK($x,$y)
         WAITMS(500)
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC[/spoiler]
Вставить этот
[spoiler]GETSCREEN

IF_PICTURE_IN (237,327, 712,511, "Ошибка.bmp", -1, 100)
  WAIT(1)
  LCLICK(685,356)
  WAIT(1)
  LCLICK(499,65)
ELSE  [/spoiler]
Проблема в том, что время от времени появляется ошибка и все встает.
И проверку надо засунуть в начало перед первым кликом, когда я сам его туда вставляю
то скрипт не работает или работает честично.
Помогите убогому :)
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 18, 2015, 12:57:47 AM
 :) Спасибо, бай бог здоровья :)
Буду побывать.
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 20, 2015, 11:44:30 PM
 :'( не работает. Появляется ошибка и все встаёт.
Без потока срабатывает, если отдельно запускать находит и кликакт, если просто ставлю
Code: [Select]
THREAD(thr_name)// поток
   // тело потока
 END_THREAD
Не работает.
Title: Re: Помогите, всю голову сломал!!!
Post by: Vint on December 21, 2015, 09:47:57 AM
Версия программы у тебя какая? Надеюсь 4.11 003
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 21, 2015, 04:18:48 PM
Кликер 4.11.003
Title: Re: Помогите, всю голову сломал!!!
Post by: Золотой on December 21, 2015, 04:29:21 PM
ну значит сектор поиска задан неверно или картинка ошибки несоответствует , той которая появляется.
возможно нужно предварительно навести курсор на кнопку, а потом только проходят клики?
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 21, 2015, 06:58:04 PM
Если так то все работает
Code: [Select]
GETSCREEN
IF_PICTURE_IN (237,327, 712,511, "Ошибка.bmp", -1, 100)
  WAIT(1)
  LCLICK(685,356)
  WAIT(1)
  LCLICK(499,65)
END_IF     
Как только вставляются в поток все бездействует.
Title: Re: Помогите, всю голову сломал!!!
Post by: Vint on December 22, 2015, 11:16:10 AM
Ты покажи как вставляешь. И куда вставляешь.
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 22, 2015, 03:04:11 PM
Вот так весь скрипт работает, но при появлении ошибки зависает.
Code: [Select]
$x=864    // Кнопка Вверх
$y=520    // Кнопка Вверх
 
$x2=758   // Закрыть окно результата
$y2=346   // Закрыть окно результата
 
$x3=829   // Окно вводда
$y3=188   // Окно вводда
 
$count = 0
 
DBLCLICK($x3,$y3)
WAITMS(50)
 
KEYSTRING("1")
WAITMS(50)
 
LCLICK($x,$y) // Кликаем по координатам
WAITMS(50)
 
$check = 0
WHILE($check = 0) // Ждем картинки и как только одна из двух появится делать следующие действия
   GETSCREEN
   IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) // Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
      WAIT(1)
      LCLICK($x2,$y2)
      $check = 1
      WAIT(1)
   ELSE
      IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) // Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
         DBLCLICK($x3,$y3)
         WAITMS(50)
 
         INC($count,1)
         SWITCH($count)
         CASE(1)
            KEYSTRING("3")
         CASE(2)
            KEYSTRING("9")
         CASE(3)
            KEYSTRING("18")                               
            $check = 1
         DEFAULT
         END_SWITCH
         WAITMS(50)
 
         LCLICK($x,$y)
         WAITMS(500)
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC
 
THREAD(thr_name)// поток
   // тело потока
 GETSCREEN
IF_PICTURE_IN (237,327, 712,511, "Ошибка.bmp", -1, 100)
  WAIT(1)
  LCLICK(685,356)
  WAIT(1)
  LCLICK(499,65)
END_IF 
 waitms(70) // задержка для разгрузки CPU
END_THREAD
Если включать только поис ошибки то находит и кликает
Code: [Select]
GETSCREEN
IF_PICTURE_IN (237,327, 712,511, "Ошибка.bmp", -1, 100)
  WAIT(1)
  LCLICK(685,356)
  WAIT(1)
  LCLICK(499,65)
END_IF   
Title: Re: Помогите, всю голову сломал!!!
Post by: Vint on December 22, 2015, 04:14:17 PM
Странно всё это. У меня никаких ошибок нет.
Проблема в том, что время от времени появляется ошибка и все встает.
А ошибку то какую выдаёт?


Если это весь скрипт, то и потоки здесь ни к чему. Поиск картинки-ошибки вставить в череду поиска первых двух.
Можно первой.
И все дела.
Code: (clickermann) [Select]
$x=864    // Кнопка Вверх
$y=520    // Кнопка Вверх

$x2=758   // Закрыть окно результата
$y2=346   // Закрыть окно результата

$x3=829   // Окно вводда
$y3=188   // Окно вводда

$count = 0

DBLCLICK($x3,$y3)
WAITMS(50)

KEYSTRING("1")
WAITMS(50)

LCLICK($x,$y) // Кликаем по координатам
WAITMS(50)

$check = 0
WHILE($check = 0) // Ждем картинки и как только одна из двух появится делать следующие действия
   GETSCREEN
   IF_PICTURE_IN (237,327, 712,511, "Ошибка.bmp", -1, 100)
      WAIT(1)
      LCLICK(685,356)
      WAIT(1)
      LCLICK(499,65)
      WAITMS(500)
   ELSE
      IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) // Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
         WAIT(1)
         LCLICK($x2,$y2)
         $check = 1
         WAIT(1)
      ELSE
         IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) // Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
            WAIT(3)
            LCLICK($x2,$y2)
            WAIT(1)
            DBLCLICK($x3,$y3)
            WAITMS(50)
           
            INC($count,1)
            SWITCH($count)
            CASE(1)
               KEYSTRING("3")
            CASE(2)
               KEYSTRING("9")
            CASE(3)
               KEYSTRING("18")
               $check = 1
            DEFAULT
            END_SWITCH
            WAITMS(50)
           
            LCLICK($x,$y)
            WAITMS(500)
         ELSE
            WAITMS(50)
         END_IF
      END_IF
   END_IF
END_CYC
Title: Re: Помогите, всю голову сломал!!!
Post by: Kingbobkov on December 22, 2015, 04:30:29 PM
Спасибо за помощь, буду пробывать.