Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: lev12348 on May 13, 2016, 01:16:52 AM
-
Господа , есть открытая сеть WI-FI , но для корректной работы нужно подтверждение номера телефона каждые 15 мин.+- , сделал программу , но похоже пере мудрил :
IF ( $f = 0 )
$f = 1
LOGWRITE ( " START" )
EXECUTE ( "firefox.exe" )
WAIT (9)
HSET ( WNDFIND ( "Mozilla Firefox", 0 ), 1 )
#logfile
$t=INT(STRCONCAT("0",INIREAD("intersvyaz.ini","time",$td)))
END_IF
IF ( $t < $_time_t )
$check = 0 // 0 не найдено, 1 найдено
WHILE ( $check = 0 ) // ожидание окончания
WNDSTATE ( WNDFIND ("Mozilla Firefox"), 1)
// ЕСЛИ ВДРУГ ИЗМЕНИЛ РАЗМЕР ...
WNDPOS ( WNDFIND ("Mozilla Firefox"), 10,10)
WNDSIZE ( WNDFIND ("Mozilla Firefox"), 500,480)
WAITMS ( 100 )
GETSCREEN
// поиск окна для ввода номера
IF_PICTURE_IN(50,100,$_xmax,$_ymax,"2.bmp",-1,90)
LCLICK ( $_return1+100, $_return2+5 )
WAITMS ( 100 )
KEYSTRING ( "951xxxxxxx", 10 )
WAITMS ( 100 )
GETSCREEN
// поиск окна "OK"
IF_PICTURE_IN(100,200,$_xmax,$_ymax,"3.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+5 )
WAITMS ( 100 )
#include "Вывод даты.cms"
SUB ( Вывод даты )
END_SUB
Вывод даты ( )
$t = $_time_t + 897
INIWRITE ( "intersvyaz.ini", "time", $t, $td )
// ИСПОЛЬЗУЮ ''Вывод текущей даты в лог.cms'' добавил
// в программу :
//END_IF
//$td = $th,$tm,$ts," date",$dd,$dm,$dy
//LOGWRITE (" Перезапуск date: ",$dd,".",$dm,".",$dy) ...?
WAIT ( 2 )
LCLICK ( $x, $y ) // если не запустился то ... ???
WAIT ( 1 )
WNDSTATE ( WNDFIND ("Mozilla Firefox"), 0 )
WAITMS ( 100 )
END_IF
$check = 1 // если найдено выходим из цикла
ELSE // если не найдено
GETSCREEN
// поиск закладки
COLORMODE ( 6, 100,50, $_xmax,$_ymax )
IF_PICTURE_IN(100,50, $_xmax,$_ymax,"1.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+3 )
WAIT ( 2 )
$x = $_return1+10
$y = $_return2+3
LOGWRITE (" END")
END_IF
END_IF
END_CYC
END_IF
Как при запуске программы , стирать ini. и log ?
и ещё , бывает , что активация не проходит с первого раза ,
прописал :
LCLICK ( $x, $y )
возвращается к окну для вставки номера , а что делать дальше не знаю , прописывать опять поиск окна для вставки номера и т д . , как то "не правильно " ... приходится пере запускать в ручную .
-
В строке KEYSTRING ( "951xxxxxxx, 10 ) потерялись закрывающие кавычки.
#include "Вывод даты.cms"
SUB ( Вывод даты )
END_SUB
Вывод даты ( )
Это что за чудо внутри трёх условий и одного цикла?
Все тела подпрограмм (SUB) описываются в корне скрипта. Там же желательно размещать и include, а иногда обязательно.
Стр. 20
.....
Интересный синтаксис...
Перепутана вложенность блоков. Они перехлёстываются.
Вот удалил лишнее чтоб была понятна структура.
IF ( $f = 0 )
END_IF
IF ( $t < $_time_t )
WHILE ( $check = 0 ) // ожидание окончания
IF_PICTURE_IN(50,100,$_xmax,$_ymax,"2.bmp",-1,90)
IF_PICTURE_IN(100,200,$_xmax,$_ymax,"3.bmp",-1,90)
END_IF
END_IF
ELSE // если не найдено
IF_PICTURE_IN(100,50, $_xmax,$_ymax,"1.bmp",-1,90)
END_IF
END_IF
END_CYC
END_IF
Как минимум, один END_IF лишний. Не знаю какой. Возможно тот что перед ELSE иначе совсем непонятно что там за чем идёт.
-
Для начала исправим ошибки.
Что за $td ? Откуда эта переменная?
$t=INT(STRCONCAT("0",INIREAD("intersvyaz.ini","time",$td)))
Здесь пропущена кавычка
KEYSTRING ( "951xxxxxxx", 10 )
Вот тут уже пошел хардкор
GETSCREEN
// поиск окна "OK"
IF_PICTURE_IN(100,200,$_xmax,$_ymax,"3.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+5 )
WAITMS ( 100 )
#include "Вывод даты.cms"
SUB ( Вывод даты ) << Что делает подпрограмма внутри условия ???
END_SUB
Вывод даты ( )
$t = $_time_t + 897
INIWRITE ( "intersvyaz.ini", "time", $t, $td ) // опять $td
// ИСПОЛЬЗУЮ ''Вывод текущей даты в лог.cms'' добавил :
.....
END_IF
Это вообще что? Наша $td наконец то объявилась, а до этого получается к нулю обращались. Только строки так не собирают, нужно использовать STRCONCAT
$td = $th,$tm,$ts," date",$dd,$dm,$dy
-
Получилось вот так , работает скрипт , что ещё можно исправить , и как при первом запуске затирать INI и LOG .
IF ( $f = 0 )
$f = 1
LOGWRITE ( " START" )
EXECUTE ( "firefox.exe" )
WAIT (9)
HSET ( WNDFIND ( "Mozilla Firefox", 0 ), 1 )
#logfile
#include "Вывод даты.cms"
SUB ( Вывод даты )
$td=(STRCONCAT($th,":",$tm,":",$ts," date:",$dd,"."$dm,"."$dy))
LOGWRITE(" Перезапуск date: ",$dd,".",$dm,".",$dy)
END_SUB
$t=INT(STRCONCAT("0",INIREAD("intersvyaz.ini","time",$td)))
END_IF
IF ( $t < $_time_t )
$check = 0 // 0 не найдено, 1 найдено
WHILE ( $check = 0 ) // ожидание окончания
WNDSTATE ( WNDFIND ("Mozilla Firefox"), 1)
WNDPOS ( WNDFIND ("Mozilla Firefox"), 10,10)
WNDSIZE ( WNDFIND ("Mozilla Firefox"), 500,480)
WAITMS ( 100 )
GETSCREEN
// поиск окна для ввода номера
IF_PICTURE_IN(50,100,$_xmax,$_ymax,"2.bmp",-1,90)
LCLICK ( $_return1+100, $_return2+5 )
WAITMS ( 100 )
KEYSTRING ( "95xxxxxxxx", 10 )
WAITMS ( 100 )
GETSCREEN
// поиск окна "OK"
IF_PICTURE_IN(100,200,$_xmax,$_ymax,"3.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+5 )
WAITMS ( 100 )
Вывод даты ( )
$t = $_time_t + 897
INIWRITE ( "intersvyaz.ini", "time", $t, $td )
WAIT ( 2 )
LCLICK ( $x, $y )
WAIT ( 1 )
WNDSTATE ( WNDFIND ("Mozilla Firefox"), 0 )
WAITMS ( 100 )
END_IF
$check = 1 // если найдено выходим из цикла
ELSE // если не найдено
GETSCREEN
// поиск закладки
COLORMODE ( 6, 100,50, $_xmax,$_ymax )
IF_PICTURE_IN(100,50, $_xmax,$_ymax,"1.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+3 )
WAIT ( 2 )
$x = $_return1+10
$y = $_return2+3
LOGWRITE (" END")
END_IF
END_IF
END_CYC
END_IF
-
И снова подпрограмма внутри условия! Подпрограммы можно помещать максимум в потоки, не вочто другое их вкладывать нельзя.
#logfile
SUB ( Вывод даты )
$td=STRCONCAT($th,":",$tm,":",$ts," date:",$dd,"."$dm,"."$dy)
LOGWRITE(" Перезапуск date: ",$dd,".",$dm,".",$dy)
END_SUB
IF ( $f = 0 )
$f = 1
LOGWRITE ( " START" )
EXECUTE ( "firefox.exe" )
WAIT (9)
HSET ( WNDFIND ( "Mozilla Firefox", 0 ), 1 )
#include "Вывод даты.cms"
$t=INT(STRCONCAT("0",INIREAD("intersvyaz.ini","time",$td)))
END_IF
IF ( $t < $_time_t )
$check = 0 // 0 не найдено, 1 найдено
WHILE ( $check = 0 ) // ожидание окончания
WNDSTATE ( WNDFIND ("Mozilla Firefox"), 1)
WNDPOS ( WNDFIND ("Mozilla Firefox"), 10,10)
WNDSIZE ( WNDFIND ("Mozilla Firefox"), 500,480)
WAITMS ( 100 )
GETSCREEN
// поиск окна для ввода номера
IF_PICTURE_IN(50,100,$_xmax,$_ymax,"2.bmp",-1,90)
LCLICK ( $_return1+100, $_return2+5 )
WAITMS ( 100 )
KEYSTRING ( "95xxxxxxxx", 10 )
WAITMS ( 100 )
GETSCREEN
// поиск окна "OK"
IF_PICTURE_IN(100,200,$_xmax,$_ymax,"3.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+5 )
WAITMS ( 100 )
Вывод даты ( )
$t = $_time_t + 897
INIWRITE ( "intersvyaz.ini", "time", $t, $td )
WAIT ( 2 )
LCLICK ( $x, $y )
WAIT ( 1 )
WNDSTATE ( WNDFIND ("Mozilla Firefox"), 0 )
WAITMS ( 100 )
END_IF
$check = 1 // если найдено выходим из цикла
ELSE // если не найдено
GETSCREEN
// поиск закладки
COLORMODE ( 6, 100,50, $_xmax,$_ymax )
IF_PICTURE_IN(100,50, $_xmax,$_ymax,"1.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+3 )
WAIT ( 2 )
$x = $_return1+10
$y = $_return2+3
LOGWRITE (" END")
END_IF
END_IF
END_CYC
END_IF
WAIT ( 1 ) // задержка для разгрузки процессора
А затереть проще простого.
TFCLEAR("input.txt", 0) // 0 стирает содержимое файла, 1 удаляет файл (причем любой)
INI файл придется в ручную удалять, потому как откуда кликер знает, хочешь ли ты начать сначала или продолжить с предыдущего сохраненного времени.
-
При запуске скрипта , долбим по закладке пока не выйдет окно с вводом номера , при нажатии ОК , в INI сохраняем время от которого начинаем отсчёт 15 мин +- несколько секунд , скрипт " Вывод даты" использую для нормального просмотра времени в INI .
Зачем при запуске скрипта старый INI , ведь время начнётся после активации номера .
В общем пробовал разобраться с подпрограммой , чтоб время отображала в INI в момент перезапуска "ОК" не получается , а получилось , как вы пишете не правильно Но всё работает как мне надо
IF ( $f = 0 )
$f = 1
TFCLEAR("log.txt", 0) // 0 стирает содержимое файла, 1 удаляет файл (причем любой)
TFCLEAR("intersvyaz.ini", 0)
WAITMS ( 100 )
LOGWRITE ( " START" )
EXECUTE ( "firefox.exe" )
WAIT (9)
HSET ( WNDFIND ( "Mozilla Firefox", 0 ), 1 )
#logfile
$t=INT(STRCONCAT("0",INIREAD("intersvyaz.ini","time",$td)))
END_IF
IF ( $t < $_time_t )
$check = 0 // 0 не найдено, 1 найдено
WHILE ( $check = 0 ) // ожидание окончания
WNDSTATE ( WNDFIND ("Mozilla Firefox"), 1)
WNDPOS ( WNDFIND ("Mozilla Firefox"), 10,10)
WNDSIZE ( WNDFIND ("Mozilla Firefox"), 500,480)
WAITMS ( 100 )
GETSCREEN
// поиск окна для ввода номера
IF_PICTURE_IN(50,100,$_xmax,$_ymax,"2.bmp",-1,90)
LCLICK ( $_return1+100, $_return2+5 )
WAITMS ( 100 )
KEYSTRING ( "9517839500", 10 )
WAITMS ( 100 )
GETSCREEN
// поиск окна "OK"
IF_PICTURE_IN(100,200,$_xmax,$_ymax,"3.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+5 )
WAITMS ( 100 )
$t = $_time_t + 898
#include "Вывод даты.cms"
INIWRITE("intersvyaz.ini","time",$t,$td)
WAIT ( 2 )
LCLICK ( $x, $y )
WAIT ( 1 )
WNDSTATE ( WNDFIND ("Mozilla Firefox"), 0 )
WAITMS ( 100 )
END_IF
$check = 1 // если найдено выходим из цикла
ELSE // если не найдено
GETSCREEN
// поиск закладки
COLORMODE ( 6, 100,50, $_xmax,$_ymax )
IF_PICTURE_IN(100,50, $_xmax,$_ymax,"1.bmp",-1,90)
LCLICK ( $_return1+10, $_return2+3 )
WAIT ( 2 )
$x = $_return1+10
$y = $_return2+3
LOGWRITE (" END")
END_IF
END_IF
END_CYC
END_IF
WAITMS ( 100 )
В "Вывод даты.cms" добавил :
$td=STRCONCAT($th,":",$tm,":",$ts," date:",$dd,"."$dm,"."$dy)
LOGWRITE(" Перезапуск date: ",$dd,".",$dm,".",$dy)
Вот результат :INI
[00:32:03 date:14.05.2016]
time=1463186821
[00:47:09 date:14.05.2016]
time=1463187727
log :
0:31:59 END
0:32:03 Перезапуск date: 14.05.2016
0:47:06 END
0:47:09 Перезапуск date: 14.05.2016