Recent Posts

Pages: [1] 2 3 ... 10
1
Как минимум сделать правильно - убрать выпрыгивание по GOTO из цикла. Тем более, что оно здесь не нужно совсем.
Для этого удалить строки 18, 6, 1

А по поводу CTRL его нажатие проверяется только в месте выполнения ISKEYDOWN. Соответственно, если картинка найдена, то там пауз минимум на
300+300+50+50+50+10+поиск с % ≈ 1 сек.
9 и 7 строка тоже не нужны тут было пара товарищей любителей пихать после всех условий задержки, а люди потом за ними повторяют. Это вредные паразитные задержки непонятно с какой целью вставленные.

Если хочешь прям чёткого срабатывания после единичного короткого нажатия в любой момент, то нужно следить за клавишей в потоке.

Code: (clickermann) [Select]
THREAD(break_key_th, 0)
    IF(ISKEYDOWN(#CTRL) = 1)
        $break_key = 1
        WHILE(ISKEYDOWN(#CTRL) = 1)
            WAITMS(50)
        END_CYC
        SETTHREAD(break_key_th, 2)
    ELSE
        WAITMS(50)
    END_IF
END_THREAD


SETTHREAD(break_key_th, 1)
$break_key = 0
WHILE($break_key= 0)
    GETSCREEN(838,578,1706,1023)
    IF_PICTURE_IN(838,578,1706,1023, "телмоб.bmp", -1, 80)
        $WNDF = WNDFIND("Связь с телефоном")
        WNDPOS($WNDF, 135, 190)
        WAITMS(10)
        WNDSIZE($WNDF, 1408, 844)
        WAITMS(50)
        LCLICK($_return1+12, $_return2+12)
        WAITMS(300)
        LCLICK(1425, 201)  // Закрыть телефон
        WAITMS(300)
    ELSE
        WAITMS(50)
    END_IF   
END_CYC
// Продолжение скрипта

после нажатия выход произойдёт не сразу, долбить не нужно. Просто выйдет из цикла когда закончит всеклики с паузами написанные в цикле - если картинка в тот момент найдена.
2
Доброго времени суток!))

Помогите найти проблему и подскажите, почему так происходит?

В общем, кликер ищет картинку. Если картинка найдена, то кликер кликает по ней и затем снова ищет эту же картинку и так до бесконечности. Допукается задержка 1 секунда после клика и перед новым поиском. Если нажата клавиша CTRL, то поиск картинки прекращается и скрипт продолжается.

Написал такой код для этого
Code: (clickermann) [Select]
tel:
      $check = 0
      WHILE($check = 0)
         GETSCREEN(838,578,1706,1023)
         IF_PICTURE_IN (838,578,1706,1023, "телмоб.bmp", -1, 80)
            $check = 1
            WAITMS(50)
            $WNDF = WNDFIND("Связь с телефоном")
            WAITMS(50)
            WNDPOS($WNDF,135,190)
            WAITMS(10)
            WNDSIZE($WNDF,1408,844)
            WAITMS(50)
            LCLICK($_return1+12, $_return2+12)
            WAITMS(300)
            LCLICK(1425,201)  // Закрыть телефон
            WAITMS(300)
            GOTO(tel)
         ELSE
            WAITMS(50)
         END_IF
         IF(ISKEYDOWN(#CTRL)=1)
            $check = 1
            WHILE(ISKEYDOWN(#CTRL)=1)
               WAITMS(50)
            END_CYC
         END_IF
      END_CYC
      // Продолжение скрипта
и вроде бы он работает, но если нажать CTRL c 10 раза. Причем кол-во нажатий для продолжения скрипта рандомное. Может через 2 раза, может через 20 раз. Почему это происходит? Как это убрать? Нужно, чтобы достаточно 1 раза было.
3
Ошибки / Re: Ошибка при вызове вункции ROUND()
« Last post by Vint on November 15, 2023, 09:01:04 AM »
Если бы ROUND() всегда требовал второй параметр, то вопрос бы не возник, но в подавляющем большинстве случаев он прекрасно работает без него.

В этом опасность всех недокументированных свойств. В справке чётко написано
Quote
Синтаксис
ROUND (arg, prec)

Параметры
arg - число
prec - точность
Два! параметра. prec не указан опциональным, он обязательный.

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

Пример
Code: (clickermann) [Select]
$n = 94.33333333333
print($n)
$n = ROUND($n)
print($n)

HALT
выдаёт ошибку. Если убрать принт который до round - ошибка исчезнет. Это и есть недокументированное свойство. Ну и что, иногда может проскочить без что второго параметра, вот случай когда не прокатило. И сколько ещё таких случаев может быть.
4
Ошибки / Re: Ошибка при вызове вункции ROUND()
« Last post by TNT on November 14, 2023, 08:25:13 PM »
Если бы ROUND() всегда требовал второй параметр, то вопрос бы не возник, но в подавляющем большинстве случаев он прекрасно работает без него.
5
Ошибки / Re: Ошибка при вызове вункции ROUND()
« Last post by Vint on November 13, 2023, 05:39:53 PM »


А что должно быть? Round принимает два параметра, где второй?
Code: (clickermann) [Select]
$n = ROUND($n, 0)
6
Ошибки / Ошибка при вызове вункции ROUND()
« Last post by TNT on November 13, 2023, 03:53:05 PM »

Кусок кода:
Code: [Select]
print($n)
$n=ROUND($n)+1
Выводит значение $n=94.33333333333
7
Общие вопросы / Re: EXECUTE("....")
« Last post by Vint on November 09, 2023, 04:04:54 PM »
Убираешь в настройках браузера пункт типа "закрывать при закрытии последней вкладки".

Сначала кликером закрываешь вкладку вызывая
Code: (clickermann) [Select]
SUB(close_tab)
    KEYDOWN(#CTRL) // CTRL+F4
    WAITMS(20)
    KEYPRESS(#F4)
    WAITMS(20)
    KEYUP(#CTRL)
    WAITMS(200)
END_SUB

Потом запускаешь свой EXECUTE
8
Общие вопросы / Re: EXECUTE("....")
« Last post by kiril on November 09, 2023, 01:55:57 AM »
ни как, Вы ведь открываете сайт командой из внешней программы, а откуда кликеру знать сколько и в каких браузерах у Вас на данный момент вкладок открыто и какая из них текущая? Можете лишние вкладки кликером закрывать.
9
Общие вопросы / EXECUTE("....")
« Last post by Зулус on November 08, 2023, 06:27:22 PM »
добрый день!
Подскажите, вызываю сайт с помощью команды EXECUTE("адрес сайта"), но он открывается в новой вкладке. А как сделать, чтобы сайт открывался в текущей вкладке?
10
Когда были полоски я делал вот так:


Code: (clickermann) [Select]
/////////////////////////////////////////////////////////////////////////////
// определяем сколько картинок
WAIT(5)
WAITMS(200)     
GETSCREEN
//COLORMODE(6)
$ColorsPxls_img = PXLCOUNT (495,660, 800, 660, 15790320) // ищем указанные пиксели в области и считаем их
SCREENSHOTFIX(495,660, 800, 660, "проверка2.bmp")  // Сохроняет скриншот
LOGWRITE ("Найдено пикселей: ", $ColorsPxls_img)
$Img_capca = $ColorsPxls_img + 1
LOGWRITE ("Всего картинок: ", $Img_capca)
// определяем сколько картинок - конец
/////////////////////////////////////////////////////////////////////////////

HALT
Pages: [1] 2 3 ... 10