Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Alecoq on March 25, 2018, 05:13:32 PM
-
Здравствуйте не поможете?
Есть 20 картинок для IF_PICTURE_IN(0,0,$_xmax,$_ymax,"img.bmp") с разными словами
Как сделать сканирование всех картинок при совпадении в строку вода написать слово которое, присвоен к картинке и нажать Enter.После вода всех слов с 20 картинок остановить цыкл.
-
Вот написал исправте что не так.
$check = 0
LOGSHOW (1, 100,100)
WHILE($check = 0)
$check = 0
WHILE($check = 0)
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "img1.bmp" ,8512998, 100)
TOCLIP ("Ñëîâî1")
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
LOGWRITE ("Ñëîâî1")
ELSE
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "img2.bmp" ,8512998, 100)
TOCLIP ("Ñëîâî2")
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
LOGWRITE ("Ñëîâî2")
ELSE
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "img3.bmp" ,8512998, 100)
TOCLIP ("Ñëîâî3")
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
LOGWRITE ("Ñëîâî3")
ELSE
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "img4.bmp" ,8512998, 100)
TOCLIP ("Ñëîâî4")
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
LOGWRITE ("Ñëîâî4")
ELSE
$check = 1
END_IF
END_CYC
-
Вот написал исправте что не так.
$check = 0
LOGSHOW (1, 100,100)
WHILE($check = 0)
$check = 0
WHILE($check = 0)
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "img1.bmp" ,8512998, 100)
TOCLIP ("Ñëîâî1")
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
LOGWRITE ("Ñëîâî1")
ELSE
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "img2.bmp" ,8512998, 100)
TOCLIP ("Ñëîâî2")
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
LOGWRITE ("Ñëîâî2")
ELSE
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "img3.bmp" ,8512998, 100)
TOCLIP ("Ñëîâî3")
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
LOGWRITE ("Ñëîâî3")
ELSE
getscreen
IF_PICTURE_IN (0,0, $_xmax, $_ymax, "img4.bmp" ,8512998, 100)
TOCLIP ("Ñëîâî4")
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // Enter
WAITMS (100)
LOGWRITE ("Ñëîâî4")
ELSE
$check = 1
END_IF
END_CYC
все не так, неохота даже пытаться вникать, много недостающих окончаний условий и циклов. если картинок 20, то код выйдет огромный, трудночитаемый и трудноредактируюмый.
вот пример, как это должно выглядеть через цикл перебираний названий файлов из массива.
STRSEPARATE ("pic1;pic2;pic3;pic4;pic5;pic6;pic7;pic8;pic9;pic10", ";", $arr) //свои названия файлов через точказапятая. без ".bmp". название = слову, которое нужно ввести где то там.
WHILE(ARRSIZE($arr) > 0) //пока в массиве есть файлы
FOR($a=0,$a<ARRSIZE($arr)) //перебираем все файлы поочереди
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax,STRCONCAT ($arr[$a],".bmp"), -1, 100)
print("нашли картинку ",$arr[$a]) //если нашли, смотрим в логе какую
// клик в поле ввода и ввод думаю сам допишешь ,через KEYSTRING или cnrl+v, нужная строка - $arr[$a]
// LCLICK(10,10)
// wait(1)
// KEYSTRING($arr[$a])
WAITMS(100)
END_IF
$arr[$a] = $arr[ARRSIZE($arr)-1] //удаляем из массива найденную картинку
$del = ARRPOP($arr)
waitms(500)
END_CYC
END_CYC
print("картинки закончились, стоп.")
halt
-
Спасибо
-
А зачем удалять из массива?
И кажется таким макаром мы пропускаем передвинутое с конца имя. Это $a мы ведь уже обработали и цикл пойдёт дальше.
18-19 строки нужно убрать.
-
А зачем удалять из массива?
И кажется таким макаром мы пропускаем передвинутое с конца имя. Это $a мы ведь уже обработали и цикл пойдёт дальше.
18-19 строки нужно убрать.
так тут задача же
После вода всех слов с 20 картинок остановить цыкл.
поэтому подумал, что одним махом 20 картинок за проход цикла фор врядли найдется. для этого всунул все это в внешний WHILE(ARRSIZE($arr) > 0), и убираю из массива найденное. да, в момент удаления, картинка с конца массива пропустится, но в следующем проходе ее будет искать.
-
Ну да, здесь можно понять по разному, особенно если не дочитать :D.
Но практически я такую задачу смутно представляю. Намного вероятней найти те что есть.
А в задаче выходит, что будут появляться именно 20 но непонятно в каком порядке и их нужно ввести непременно все.
-
Отбор работает как надо.
Через KEYSTRING я как понял не получится.
Текст с запятыми и ! знаком большие буквы на русском.
через нажатие клавиш кликер сможет такое напечатать?
енность,
оворю!
вершений.
роню
Неведо
мый!!! С Т
По свет
колений!
лю я для н
квозь бр
ак драго
Прослав
И торжест
Твоих лу
Прошу, вве
у пронесу, к
ценность!
во побед, с
нную б
ди мен
овых по
я во храм с
чей свяще
обою г
-
Все отлично печатает последняя бета 4.13.11b
http://crapware.aidf.org/forum/index.php?topic=356.msg26108#msg26108 (http://crapware.aidf.org/forum/index.php?topic=356.msg26108#msg26108)
+ обновленный exe
http://crapware.aidf.org/forum/index.php?topic=356.msg26555#msg26555 (http://crapware.aidf.org/forum/index.php?topic=356.msg26555#msg26555)
Тестируем на блокноте. Лучше включить "Пауза перед запуском" на основной форме, чтобы успеть кликнуть по блокноту для фокуса.
FOR($a=1,$a<=TFCOUNT("text.txt"))
KEYSTRING(TFREAD("text.txt", $a))
KEYPRESS(#ENTER)
END_CYC
HALT
-
На версии 13 печатает единственное "," точкой печатает и
вместо б=бр (И торжест) следующие слово а оно вместе (нную бр)
Тест:
я во храм с
овых по
ди мен
(нную брИ торжест)
Твоих лу
Прошу. вве