Последние сообщения

Страницы: 1 2 3 [4] 5 6 ... 10
31
Общие вопросы / подпрограммы
« Последний ответ от kanmisha Октябрь 31, 2021, 08:32:21 pm »
здравствуйте.
подскажите где ошибка.
вот так картинку кликер находит.
Код: Clickermann
  1. GETSCREEN
  2. IF_PICTURE_IN (0,0, $_xmax,$_ymax, "картинка.bmp",0,80)
  3.   print("Найден в координатах X=", $_return1, ", Y=", $_return2)
  4.   MOVE($_return1, $_return2)
  5. Else
  6.   HINTPOPUP("Не найдено")
  7. END_IF
  8. HALT
  9.  

а вот так нет . почему ?

Код: Clickermann
  1. SUB(картинка,$par21,$par22,$par23,$par24,$par25,$par26,$par27,$par28) // подпрограмма с параметрами
  2.   GETSCREEN ($par21,$par22,$par23,$par24)
  3.   IF_PICTURE_IN ($par21,$par22,$par23,$par24,$par25)
  4.      LCLICK($_return1+2, $_return2+2)
  5.      WAITMS($par28)
  6.   END_IF
  7. END_SUB
  8.   картинка(830,540,930,740,"картинка.bmp",0,80,1000)
  9.  
32
Общие вопросы / Математические вычисления в буфере
« Последний ответ от Parz Октябрь 31, 2021, 07:15:56 pm »
Подскажите пожалуйста, может ли данная программа проводить математические вычисления в буфере к примеру:

WAIT(1)
DBLCLICK(391,821)//выделяем число
WAITMS(100)

KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS(100)
//число в буфере всегда с точкой а если оно боль 1 тис то ещё и запятая каждые три целых имеет такой вид: 83,745.70
//здесь вычисляем 1.98740+0,3%=1.9933622 или хотя бы 1.98740/300+1.98740=1.994024666666667

LCLICK(880, 410)//окно ввода решения
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(50)
Хотелось бы оптимизировать код, так как там завязка с блокнотом для замены точки на запятую, а потом калькулятор это считает.
Весь код забирает примерно 20 сек дальше оптимизировать некуда потому что будет не точное выполнение, а нужно не больше 5 сек.
33
Общие вопросы / Re: Не работает переменная. Помогите пожалуйста
« Последний ответ от Parz Октябрь 31, 2021, 02:16:54 pm »
Если кому нужно вот код рабочий

GR:
$check = 0
$checc = 0
$time = $_time_d + 1
WHILE($time > $_time_d)
   GETSCREEN (1000,810, 1090,840)
   IF_PIXEL_IN(1000,810, 1090,840, 4601507, 4864436, 5127362, 5915625, 4272784)// красный
      $check = 1
      $time = 0
      WAITMS(100)
      LOGWRITE("пиксель красный")
      WAIT(1)
   ELSE
      GETSCREEN (1000,810, 1090,840)
      IF_PIXEL_IN(1000,810, 1090,840, 6922256, 6130193, 5074451, 6988304, 7846415)// зеленый
         $checc = 1
         $time = 0
         WAITMS(100)
         LOGWRITE("пиксель зеленый")
         WAIT(1)
      END_IF
   END_IF
END_CYC

IF($check = 1)
   LOGWRITE("да пиксель красный")
   GOTO(red)
END_IF

IF($checc = 1)
   LOGWRITE("да пиксель зеленый")
   GOTO(green)
END_IF

red:
$check = 0
$time = $_time_t + 1
WHILE($time > $_time_t)
   getscreen (60,770, 141,881)
   IF_PICTURE_IN (60,770, 140,880, "white.bmp", -1, 100)
      $check = 1
      LOGWRITE ("нашел картинку")
   ELSE
      LOGWRITE ("не нашел картинку")
      WAIT(1)
   END_IF
end_cyc

IF($check = 1)
   INC($orderminus,1)
   WAITMS(50)
   log($note)
   LOGWRITE ("закрыл ордер на красный")
   WAIT(5)
   halt
END_IF

IF($time ! 0)
   GOTO(GR)
END_IF

green:
$check = 0
$time = $_time_t + 1
WHILE($time > $_time_t)
   getscreen (60,770, 141,881)
   IF_PICTURE_IN (60,770, 140,880, "white.bmp", -1, 100)
      $check = 1
      LOGWRITE ("нашел картинку")
   ELSE
      LOGWRITE ("не нашел картинку")
      WAIT(1)
   END_IF
end_cyc

IF($check = 1)
   INC($orderplus,1)
   WAITMS(50)
   log($note)
   LOGWRITE ("закрыл ордер на зеленый")
   WAIT(1)
   halt
END_IF

IF($time ! 0)
   GOTO(GR)
END_IF
34
Общие вопросы / Re: Не работает переменная. Помогите пожалуйста
« Последний ответ от Parz Октябрь 31, 2021, 10:19:24 am »
Короче почитал форум понял что GOTO в циклах не работает.
Написал вот такое чудо но оно просто стопорит скрипт и ему вобще всеравно что там происходит. я так понимаю у меня переменная $check попросту не работает.

$check = 0
$time = $_time_d + 1
WHILE($time > $_time_d,$check = 0)
   GETSCREEN (1000,810, 1090,40)
   IF_PIXEL_IN(1000,810, 1090,40, 922256)
      $check = 1
      $time = 0
      LOGWRITE("нашел зеленый цвет")
      WAIT(1)
      GETSCREEN (60,770, 141,881)
      IF_PICTURE_IN (60,770, 140,880, "white.bmp", -1, 100)
         LOGWRITE("нашел черный квадрат после зеленого")
         INC($orderplus,1)
         WAITMS(50)
         log($note)
         WAIT(1)
      ELSE
         GETSCREEN (1000,810, 1090,40)
         IF_PIXEL_IN(1000,810, 1090,40, 4798640)
            $check = 1
            $time = 0
            LOGWRITE("нашел красный цвет")
            WAIT(1)
            GETSCREEN (60,770, 141,881)
            IF_PICTURE_IN (60,770, 140,880, "white.bmp", -1, 100)
               LOGWRITE("нашел черный квадрат после красного")
               INC($orderminus,1)
               WAITMS(50)
               log($note)
               WAIT(120)
            ELSE
LOGWRITE("не нашел ни один цвет")
               WAIT(1)
            END_IF
         END_IF
      END_IF
   END_IF
END_CYC

Но в таком виде он работает

$time = $_time_d + 1
WHILE($time > $_time_d)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "confirm.bmp", -1, 100) //подтвердить
   $time = 0   
MOVE_SLOW($_return1, $_return2)
      LCLICK($_return1, $_return2)
      WAIT(1)
   END_IF
ELSE
   WAIT
END_CYC

Помогите пожалуйста, я не понимаю что можно сделать
35
Общие вопросы / Не работает переменная. Помогите пожалуйста
« Последний ответ от Parz Октябрь 30, 2021, 04:57:32 pm »
Помогите со скриптом.
Скорее всего нужно потоками писать, но я от этого далек.
Логика скрипта такая, есть  два варианта цвета зеленый и красный.
Если скрипт видит зеленый через время он должен проверить не пропал ли цвет по этим координатам то есть ищем пустой квадрат, если черный квадрат сек задержка и скрипт сначала. Если скрипт видит красный тоже самое что зеленый ток задержка больше. Проблема в том что цвет может меняться , скрипт должен запомнить какой цвет был последний и сделать запись в блокнот, что было последним красное или зеленое.

Вот пример то что я написал,  но скрипт попросту не выполняет функции, хотя запись в блокнот делает.

proverka:
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(1000,810, 1090,40, 922256)
      WAITMS(100)
      GOTO(proverkablackplus)
   END_IF
ELSE
   GETSCREEN
   IF_PIXEL_IN(1000,810, 1090,40, 4798640)
      WAITMS(100)
      GOTO(proverkablackminus)
   END_IF
ELSE
   WAITMS(100)
   GOTO(start)
END_CYC


proverkablackplus:
WAIT(5)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (1000,810, 1090,40, "black.bmp", -1, 100)
      WAITMS(100)
      $check = 1
   END_IF
ELSE
   WAITMS(100)
   GOTO(proverka)
END_CYC

INC($orderplus,1)
log($note)
WAIT(1)
goto(start)

proverkablackminus:
WAIT(5)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (1000,810, 1090,40, "black.bmp", -1, 100)
      WAITMS(100)
      $check = 1
   END_IF
ELSE
   WAITMS(100)
   GOTO(proverka)
END_CYC

INC($orderminus,1)
log($note)
WAIT(60)
goto(start)
36
Общие вопросы / Re: Помогите с проблемой
« Последний ответ от Atheas Октябрь 29, 2021, 06:05:24 pm »
Большое спасибо за ответ, единственный вопрос, что такое "их не пропускает защита" ?
37
Общие вопросы / Re: Помогите с проблемой
« Последний ответ от Vint Октябрь 29, 2021, 05:47:25 pm »
Ещё раз. Как определил что "часть скрипта которую не видит"?

Потому как варианта 4.
1. 50% при таком вопросе, оказывается, что просто не находит такой цвет. Начинают ошибочно говорить, что часть скрипта не работает. Обычно, всё там Находит и достаточно расставить вывод в лог
Код: Clickermann
  1. GETSCREEN
  2. IF_PIXEL_IN(5,4,1888,81,16579835)
  3.   LCLICK(1455,14)
  4.   WAIT(3)
  5.   LCLICK(1540,11)
  6.   WAIT(3)
  7.   print("Нашёл")
  8. ELSE
  9.   print("НЕ нашёл")
  10. END_IF

2. Ещё 40% цвет находит, но действия не выполняются. Клики заданы не туда, или их не пропускает защита, или используется привязка и координаты перепутаны или привязано не то окно. Определяется так же расставлением вывода в лог.

3. Бывает, после изменения скрипта, забыли нажать "применить", тогда выполняется старый код - до изменения. Проходит после нажатия применить или переокрытии скрипта. Скорее всего, это не твой случай, но помнить о нём нужно.

4. Скрипт неправильный и в нём творится жуткий треш: не закрытые блоки, перехлестнувшиеся блоки и т.п. Тогда часть строк, в местах ошибок, тупо не воспринимается. Надеюсь это тоже не твой случай, т.к. предоставленные части простые. Может там остальное наверчено, но это не видно.

В итоге остаётся первый вариант, просто тупо нет такого цвета. Он мог измениться. Он мог пропасть из-за сглаживания или изменения масштаба, да что угодно.
Или второй, здесь по ситуации. Самое простое, запуск кликера от админа.
38
Общие вопросы / Taskbar thumnails preview.
« Последний ответ от zergshadow Октябрь 29, 2021, 01:56:45 pm »
Windows 10 12h1. Через реестр и политику отключены Taskbar thumnails preview и увеличена задержка отображения. Но после перегрузки процессора кликерман начинает активировать предпросмотр по время работы. Помогает нажатие на окно панели задач вручную или перезагрузка компьютера. Это можно исправить?
39
Общие вопросы / Re: Помогите с проблемой
« Последний ответ от Atheas Октябрь 29, 2021, 11:32:23 am »
Вкратце объясню суть макроса, открыто 10 закладок в браузере, пишется ключевое слово в браузере, оно выделяется цветом и по цвету этим скриптом его находит и открывает
GETSCREEN
IF_PIXEL_IN(117,198,825,1038,6737016)
   WAIT(2)
   MCLICK($_return1, $_return2)
   WAIT(1)
END_IF

затем 2я часть скрипта которую не видит, должна перейти на открытую страницу и закрыть ее
GETSCREEN
IF_PIXEL_IN(5,4,1888,81,16579835)
   LCLICK(1455,14)
   WAIT(3)
   LCLICK(1540,11)
   WAIT(3)
END_IF


и по необъяснимой мне причине, часть из скриптов работает без проблем, а часть не видит их
Все скрипты одинаковые, разница только в координатах закрытия окон браузера.
40
Общие вопросы / Re: Помогите с проблемой
« Последний ответ от Vint Октябрь 29, 2021, 11:20:57 am »
Что значит "перестало видеть строки"? Как это определил?
Страницы: 1 2 3 [4] 5 6 ... 10