1 (изменено: unKn0wn, 2013-12-24 11:04:07)

Тема: 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картинок

2

Re: AHK: Поиск нескольких изображений на страничке в браузере и клик

unKn0wn, исправьте заголовок темы.