Тема: AHK: Поиск нескольких изображений на страничке в браузере и клик
Собственно изображения идут в ряд, на страничке их 100, но страничку при этом нужно будет скролить в низ, чтобы увидеть те картинки, которые не попали в обзор, т.е. примерно 4-6 изображений видно на экране, если скролить в низ страничку, то можно увидеть следующие. Картинки размером 21х22. Расстояние между картинками меняется, может быть на несколько сотен пикселей сдвинуто вверх или в низ по У, но Х координаты всегда одни, но расстояние не может быть нулевым между двумя картинками, что-то в таком духе:
----[gif]----
----[gif]--------[gif]----
----[gif]----
----[gif]----
Сверху в низ думаю делать проверки по координатам, добавляя к найденной картинке пару пикселей чтобы образовать квадрат в который и помещается картинка, дабы в нём искать картинку ниже по У. Вот пример набросал как я это вижу, не проверял на работоспособность т.к. хотел наглядней показать, что я вижу .
Loop
{
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *75 1.png
If ErrorLevel = 0
{
Loop
{
MsgBox нашли
FoundX22 := FoundX+22 ;от найденнного левого верхнего угла вправо
FoundY22 := FoundY+22 ;спуск ниже на 22пикселя
FoundX2 := FoundX-22 ;от найденнного левого верхнего угла влево
FoundY2 := FoundY-22 ;выше на 22пикселя
MouseClick, FoundX FoundY
ImageSearch, FoundX, FoundY, FoundX, FoundY22, FoundX2, FoundY, *75 1.png ;Образую квадрат в котором искать картинку исходя от найденной картинки.
If ErrorLevel = 0
{
MsgBox нашли2 и добавили
MouseClick, FoundX FoundY
}
MsgBox ненашли2 и добавили
FoundX22 := FoundX+22 ;от найденнного левого верхнего угла вправо
FoundY22 := FoundY+22 ;спуск ниже на 22пикселя
FoundX2 := FoundX-22 ;от найденнного левого верхнего угла влево
FoundY2 := FoundY-22 ;выше на 22пикселя
ImageSearch, FoundX, FoundY, FoundX, FoundY22, FoundX2, FoundY, *75 1.png ;Образую квадрат в котором искать картинку исходя от найденной картинки.
MouseClick, FoundX FoundY
}
FoundX22 := FoundX+22 ;от найденнного левого верхнего угла вправо
FoundY22 := FoundY+22 ;спуск ниже на 22пикселя
FoundX2 := FoundX-22 ;от найденнного левого верхнего угла влево
FoundY2 := FoundY-22 ;выше на 22пикселя
ImageSearch, FoundX, FoundY, FoundX, FoundY22, FoundX2, FoundY, *75 1.png ;Образую квадрат в котором искать картинку исходя от найденной картинки.
MouseClick, FoundX FoundY
}
MsgBox ненашли
Sleep, 10
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *75 1.png
}
Собственно интересуют вопросы: Может это можно сделать как попроще? И как бы прикрутить скрол, думаю просто send {down} -но тогда наверное сбрасывать координаты. Или колесо мышки, но опять таки сброс координат и поиск во всему монитору.
Думал сделать проверки на курсор как основную проверку -если тип курсора "Unknown"(он меняется на этот тип если изображение попадает под курсор) то делать клик, но если скролить страничку и курсор не двигать, то есть поставить в нужные координаты по У, и скролить в низ и ждать пока не поменяться курсор, но если скролить через {up} то он иногда не меняется(нужно передвинуть курсор чтобы тот сменил тип хоть даже на 1 пиксель), и этот вариант не так быстр как вариант с картинкой.
Вообще в идеале хотелось бы сразу по быстрому листать страничку и жать именно на картинку где меняется курсор на "Unknown".
Но опять таки, может есть способ как-то ускорить процессс десятка секунд на 100картинок до нескольких секунд на 100картинок