Author Topic: Если картинка найдена, то переменная = 1. Если не найдена, то пустая  (Read 1703 times)

0 Members and 1 Guest are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Всем привет:)
Чтобы темы не плодить, собрал все вопросы здесь.

Вопрос 1
Как это сделать? Если картинка найдена, то переменная = 1, если не найдена, то игнорирует.
Code: (clickermann) [Select]
GETSCREEN(421,200,714,427)
IF_PICTURE_IN (421,200,714,427, "file.bmp", -1, 100)
   $a = 1 //Если картинка найдена, то переменная $a = 1
   WAITMS(100)
END_IF
//Дальнейший скрипт
WAITMS(500)
LCLICK(767,323)  // 16777215
WAITMS(200)
LCLICK(767,323)  // 16777215
WAITMS(500)
KEYSTRING($a)
Почему в итоге вставляет 0? Даже если картинка найдена. Если хоть одна из нескольких картинок найдена, то переменная $a должна быть всегда = 1. Например, из 5 картинок найдено 2 и соответственно кликер наткнулся на две строчки объявить переменную $a, то в этом случае в столбце $а кликер вставляет 1. Если не найдено ни одной, то переменная пустая и кликер оставляет ячейку в Excel пустой.

Должно быть так:



Вопрос 2
Возможно сделать так, чтобы кликер открывал определенный файл ексель без кликов? Если файл уже открыт, то открывал открытый файл, а не второй.

Вопрос 3
Скрипт всегда открыт. Выполняется 50-60 раз в день. Раз в день в строгое время нужно производить определенное действие. Целесообразно ли в этом скрипте прописывать это действие, или лучше запускать копию кликермана? Если целесообразно, как сделать так, чтобы часть скрипта запускалась строго в 17:30 и до этого времени игнорировалась?

Вопрос 4
Какую реальную пользу несут потоки в автокликере? Я так понял, потоки делают сложные математические вычисления, пока остальной сценарий запущен. Также они воспроизводят два сценария одновременно, но не может ведь кликер в одно и то же время кликать дважды на экран? Где на практике они полезны?

Вопрос 5
Возможно ли сделать так, чтобы кликер выполнял определенное действие в браузере Google Chrome и одновременно в фоне действие в Excel?

Заключение
Дойду до банкомата и переведу разработчику деньжат:-)
« Last Edit: November 23, 2019, 11:40:13 PM by SimplY »

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Вопрос 1
Как это сделать? Если картинка найдена, то переменная = 1, если не найдена, то игнорирует.
Code: (clickermann) [Select]
GETSCREEN(421,200,714,427)
IF_PICTURE_IN (421,200,714,427, "file.bmp", -1, 100)
   $a = 1 //Если картинка найдена, то переменная $a = 1
   WAITMS(100)
END_IF
//Дальнейший скрипт
WAITMS(500)
LCLICK(767,323)  // 16777215
WAITMS(200)
LCLICK(767,323)  // 16777215
WAITMS(500)
KEYSTRING($a)
Почему в итоге вставляет 0? Даже если картинка найдена. Если хоть одна из нескольких картинок найдена, то переменная $a должна быть всегда = 1. Например, из 5 картинок найдено 2 и соответственно кликер наткнулся на две строчки объявить переменную $a, то в этом случае в столбце $а кликер вставляет 1. Если не найдено ни одной, то переменная пустая и кликер оставляет ячейку в Excel пустой.

Должно быть так:

Потому что он не находит картинку, и переменная присваивает ноль. Попробуй уменьшить процент совпадения, со 100 на 90. Впиши после поиска картинки запись в лог, что бы знать точно находит или нет.
Code: (clickermann) [Select]
LOGWRITE ("Есть картинка")И если ты не хочешь писать ноль, то лучше поставить Else
Code: (clickermann) [Select]
GETSCREEN(421,200,714,427)
IF_PICTURE_IN (421,200,714,427, "file.bmp", -1, 100)
   $a = 1 //Если картинка найдена, то переменная $a = 1
   WAITMS(100)
   //Дальнейший скрипт
   WAITMS(500)
   LCLICK(767,323)  // 16777215
   WAITMS(200)
   LCLICK(767,323)  // 16777215
   WAITMS(500)
   KEYSTRING($a)
ELSE // если не найдена, то игнорирует.
   WAITMS(50)
END_IF
« Last Edit: November 24, 2019, 03:53:46 AM by Ramzesia »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Вопрос 1 

Code: (clickermann) [Select]
GETSCREEN(421,200,714,427)
IF_PICTURE_IN (421,200,714,427, "file.bmp", -1, 100)
   $a = 1 //Если картинка найдена, то переменная $a = 1
ELSE
   $a = -1
END_IF

//Дальнейший скрипт
LCLICK(767,323)  // 16777215
WAITMS(200)

LCLICK(767,323)  // 16777215
WAITMS(500)

IF($a ! -1) // если переменная равна -1 действие не выполняется
   KEYSTRING($a)
   WAITMS(500)
END_IF

Вопрос 2

Code: (clickermann) [Select]
EXECUTE("Таблица.xlsx")
Вопрос 3
Чтобы действие выполнилось в заданное время нужно использовать поток.
Code: (clickermann) [Select]
THREAD(t1, 1)
   IF(($_time_h = 17)&($_time_m = 30)&($_time_s = 0)) // 17:00:00
      // действие
   ELSE
      WAITMS(100)
   END_IF
END_THREAD

Вопрос 4
Поток выполняет скрипт параллельно с другим скриптом. Строки скрипта все равно выполняются друг за другом только вперемешку с другим скриптом. Это не может ускорить выполнение. Например выполнение функции IF_PICTURE_IN полностью затормозит все потоки пока функция не отработает.