Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Alexxx on January 30, 2019, 12:52:32 PM
-
Здравствуйте. Подскажите, пожалуйста, возможно ли средствами "Clickermann" считывать время со странички браузера и заносить её в переменную? Вот скажем, сайт time100.ru (http://time100.ru) - просто страничка с цифровыми часами, как сделать, что бы переменная ежесекундно изменялась в такт с ними? Буду рад любой помощи.
-
Спасибо за ответ. Совет интересный, но моя задача несколько сложнее. На страничке идёт обратный отсчёт времени, при достижении нуля нужно кликнуть на кнопку. Кроме этого есть ещё одна меняющаяся цифра, значение которой необходимо сравнивать с предыдущим. Это осложнено тем, что поле с цифрой плавает вверх-вниз. В общем, вопрос тот же - можно ли получать эти цифры в переменные, хотя бы раз в минуту. Это в принципе возможно?
-
Ну так тебе нужно распознавание текста или чисел
http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571 (http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571)
http://crapware.aidf.org/forum/index.php?topic=88.msg16221#msg16221 (http://crapware.aidf.org/forum/index.php?topic=88.msg16221#msg16221)
-
достаточно один раз день, в ручную синхронизировать время на своём компе с интересующим сайтом и в дальнейшем пользоваться готовыми системными переменными времени.
Благодарю всех откликнувшихся. Пожалуй, вариант с синхронизацией самый оптимальный, обратный отсчёт запускается стабильно каждую минуту. Но возник другой вопрос: а как, собственно, узнать, что минута прошла и счётчик обнулился? Мне, кроме как вызывать в цикле текущую секунду ($_time_s) и ждать пока она не станет "00" ничего в голову не приходит. Может есть какой то другой способ?
-
Попалась на глаза такая информация:
Скрипт включает действия в определенное время.
IF_TIME("*:*:*"). Звездочка означает любой час, любую минуту и секунду.
IF_TIME("12:00:00") // сработает в 12:00:00
END_IF
Пример:
IF_TIME("12:10:*") // Включаем в 12.10
$t1 = 1
END_IF
IF_TIME("16:10:*") // Отключаем в 16.10
$t1 = 0
END_IF
IF_TIME("16:10:*") // Включаем в 16.10
$t2 = 1
END_IF
IF_TIME("12:10:*") // Отключаем в 12.10
$t2 = 0
END_IF
IF($t1 = 1) // 12.10
// здесь Действие
// Будет выполняться с 12.10 по 16.10
LOGWRITE("Задание в 12.10")
END_IF
IF($t2 = 1) // 16.10
// здесь Действие
// Будет выполняться с 16.10 по 12.10
LOGWRITE("Задание в 16.10")
END_IF
WAITMS (500)
Вроде бы то, что нужно. Жаль, что в справке про эту команду нет упоминания.
-
Вот скажем, сайт time100.ru (http://time100.ru) - просто страничка с цифровыми часами, как сделать, что бы переменная ежесекундно изменялась в такт с ними?
$HTML = HTTPGET("https://time100.ru/")
$num = STRPOS ($HTML, "<span>%H%:%i%:%s</span>")
IF($num ! 0)
$vremya = STRCUT ($HTML, $num+25, 8)
LOGWRITE ($vremya)
END_IF
WAITMS(50)
Только в папку кликера надо бросить ssleay32.dll и libeay32.dll. Ну, и запускать 32-битную версию кликера.
-
Вроде бы то, что нужно. Жаль, что в справке про эту команду нет упоминания.
То же самое
IF(($_time_h = 12)&($_time_m = 10)&($_time_s = 0)) // сработает в 12:10:00
// body
END_IF
-
То же самое
IF(($_time_h = 12)&($_time_m = 10)&($_time_s = 0)) // сработает в 12:10:00
// body
END_IF
Попробовал этот код, добавив в тело "PRINT", всё сработало, но в лог напечаталось порядка 30 сообщений - сколько успел за секунду, видимо. А как сделать, что бы тело однократно выполнилось?
-
То же самое
IF(($_time_h = 12)&($_time_m = 10)&($_time_s = 0)) // сработает в 12:10:00
// body
END_IF
Попробовал этот код, добавив в тело "PRINT", всё сработало, но в лог напечаталось порядка 30 сообщений - сколько успел за секунду, видимо. А как сделать, что бы тело однократно выполнилось?
Добавь задержку в 1 секунду
IF(($_time_h = 12)&($_time_m = 10)&($_time_s = 0)) // сработает в 12:10:00
// body
WAIT(1)
END_IF
WAITMS(50)
-
IF(($_time_h = 12)&($_time_m = 10)&($_time_s = 0)) // сработает в 12:10:00
// body
END_IF
Подскажите, а как постоянно вызывать этот код раз в минуту?
Попробовал воспользоваться другим способом, найденым на форуме:
GETSCREEN(1031,268,1046,667)
IF($time1 < $_time_t)
$time1 = $_time_t + 60
GETSCREEN(1031,268,1046,667)
IF_PIXEL_IN(1030,267,1045,666, 3823071) // красный
LOGWRITE ("Красный")
$peremennaya = 1
else
IF_PIXEL_IN(1030,267,1045,666, 7186218) // зеленый
LOGWRITE ("Зеленый")
$peremennaya = 0
END_IF
END_IF
END_IF
В целом работает, но так как время выполнения тела не нулевое, начало выполнения следующего цикла сдвигается на пару секунд. В общем, прошу помощи - как добиться строгого срабатывания раз в минуту?
-
В целом работает, но так как время выполнения тела не нулевое, начало выполнения следующего цикла сдвигается на пару секунд. В общем, прошу помощи - как добиться строгого срабатывания раз в минуту?
ну так присваивай значение перед выходом из условия
IF($time1 < $_time_t)
GETSCREEN(1031,268,1046,667)
IF_PIXEL_IN(1030,267,1045,666, 3823071) // красный
LOGWRITE ("Красный")
$peremennaya = 1
else
IF_PIXEL_IN(1030,267,1045,666, 7186218) // зеленый
LOGWRITE ("Зеленый")
$peremennaya = 0
END_IF
END_IF
$time1 = $_time_t + 60
END_IF
-
Вот так будет точнее
IF($time1 <= $_ms)
GETSCREEN(1031,268,1046,667)
IF_PIXEL_IN(1030,267,1045,666, 3823071) // красный
LOGWRITE ("Красный")
$peremennaya = 1
else
IF_PIXEL_IN(1030,267,1045,666, 7186218) // зеленый
LOGWRITE ("Зеленый")
$peremennaya = 0
END_IF
END_IF
$time1 = $_ms + 60000
END_IF
-
В целом работает, но так как время выполнения тела не нулевое, начало выполнения следующего цикла сдвигается на пару секунд. В общем, прошу помощи - как добиться строгого срабатывания раз в минуту?
В моем понимании вопроса, требуется коррекция задержки между итерациями цикла, которая должна быть строго равна 1 минуте.
Было такое решение однажды. Сам по себе алгоритм красивенный, если вникнуть, плюс эта коррекция паузы - http://crapware.aidf.org/forum/index.php?topic=3439.msg23552#msg23552
Пример:
DEFINE($iteration_time, 1000) // устанавливаем задержку между итерациями цикла, в миллисекундах (1000 ms)
$t = $_ms // время начала итерации
WAITMS(RND(500,800)) // время выполнения тела цикла (всегда разное и должно быть меньше $iteration_time)
// коррекция времени (вычисляем время задержки, перед началом следующей итерации)
WAITMS($iteration_time - ($_ms - $t)) // задержка (вычитаем из задержки "$iteration_time" время, затраченное на выполнение действий в текущей итерации)
LOGWRITE ("Потеря времени: ", $iteration_time - ($_ms - $t), " ms") // 1 миллисекунду спишем на вывод этого сообщения