1 (изменено: Kain-evil, 2013-06-07 11:32:56)

Тема: AHK: Двойной (и более) поиск изображений в одном скрипте

Здравствуйте!
Столкнулся с такой проблемой. Необходимо в окне браузера:
1) найти определенную область (не статическую, и имеющую строго определенный вид),
2) щелкнуть по ней, чтобы вывелось дополнительное окно,
3) далее проверить в данном окне имеются ли заданные области экрана по 2 условиям (и если да, то одно действие, если нет - другое)

Написал скрипт такого вида:


@::
{
MouseClick, Left, 1021, 282
Sleep 800  ;

CoordMode, Pixel, Screen
CoordMode, Mouse, Screen
ImageSearch, a, b, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\kartinka1.bmp
if !ErrorLevel
    {
        MouseMove, %a%, %b%, 0
        click
        Sleep 800  ;
        
        CoordMode, Pixel, Screen
        CoordMode, Mouse, Screen
        ImageSearch, a, b, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\kartinka2.bmp
        Sleep 800  ;
        if !ErrorLevel
            {      
                CoordMode, Pixel, Screen
                CoordMode, Mouse, Screen
                ImageSearch, a, b, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\kartinka3.bmp
                Sleep 800  ;
                if !ErrorLevel
                    {      

                        MouseClick, Left, 1127, 299
                        Sleep 800  ;

                    }
                else
                    {
                        MouseClick, Left, 569, 555
                        Sleep 800  ;                        
                        MouseClick, Left, 763, 336
                        Sleep 800  ;
                        send 1
                        MouseClick, Left, 763, 336
                        Sleep 200  ;
                    }
            }
        else
            {}
        MouseClick, Left, 496, 755 
        Sleep 800  ;
        MouseClick, Left, 658, 645
        Sleep 800  ;
        send EEE 
        MouseClick, Left, 900, 651
        Sleep 800  ;
    }
else
    {
                return
         }
}
return

Первое и второе действие выполняется. А вот в третьем стопор - не хочет распознавать области. Даже не так, специально проверял на окне с имеющейся областью kartinka2 - не производились действия, которые должны были выполняться после ее распознавания. То же самое с областью kartinka3.
Более того, вставил с целью проверки прохождения процесса распознавания областей kartinka2 и kartinka3 в код:


MouseMove, %a%, %b%, 0
Sleep 8000

чтобы после распознавания области производилось наведение на нее указателя мышки. Ноль реакции - распознавание вообще не проводится.

Так вот, собственно и вопрос: может ли в одном скрипте производиться два и более распознавания областей с проведением действий, и если да, то подскажите, пожалуйста,  как исправить мой код.
Заранее благодарю!

2

Re: AHK: Двойной (и более) поиск изображений в одном скрипте

Так вот, собственно и вопрос: может ли в одном скрипте производиться два и более распознавания областей с проведением действий

Да, число распознаваний не ограничено.

Серьёзных ошибок не замечено.
В коде в пятнадцатой строчке (считая снизу) стоит пара фигурных скобок. Зачем?
CoordMode достаточно объявить один раз, второй и третий раз лишние.

3

Re: AHK: Двойной (и более) поиск изображений в одном скрипте

Пара фигурных скобок от оператора else. Про CoordMode благодарю!

Но все-таки, если число распознаваний не ограничено, то почему не идет распознавание другой картинки после первой?
Или число распознаваний в скрипте не ограниченно именно в плане только одной картинки?

4 (изменено: Mikki, 2013-06-07 20:31:15)

Re: AHK: Двойной (и более) поиск изображений в одном скрипте

Вообще не ограничено.
А зачем else и пустой блок операторов? Они же ни чего не выполняют.

Попробуйте переставить картинки местами, или сделайте 3-и скрипта под каждую картинку - если скрипты находят картинки по отдельности, то проблема не в картинках и надо "шерстить" код. Но, на первый взгляд, с кодом все в порядке.

Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди