Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   как правильно: if not @error или if isArray???? (http://forum.oszone.net/showthread.php?t=172605)

Antoschka2 08-04-2010 22:10 1388268

как правильно: if not @error или if isArray????
 
добрыи день у меня какая-то неполатка в скрипте в @error как то нереагирует хотя всё работает скрипт просто выключается. Может кто подскажет что исправить чтобы заработал @error??? Или для этои ситуации if isArray неподходит????



Код:




WinWaitActive("www.--- - Windows Internet Explorer")
sleep(3000)
Call("generate")

Func generate ()

    TrayTip("", "Работаем", 3, 16)
    Sleep(4500)
    $random = Random(0, 1, 1)
    If $random = 0 Then
        TrayTip("", "Работает функция odin", 3, 16)
        odin()
        TrayTip("", "", 0)
    Else
        TrayTip("", "Работает функция dva", 3, 16)
        dva()
        TrayTip("", "", 0, 16)
    EndIf

EndFunc





Func odin ()
$Pos = PixelSearch(329, 352, 380, 444, 0x689CFE)
if IsArray($Pos) Then
        MouseClick("left", $Pos[0], $Pos[1])
        call ("generate")
        EndIf
If @error  then
        sleep(1000)
        Call("check1")
        endIf
EndFunc

Func dva ()
        $Pos = PixelSearch(870, 352, 901, 444, 0x689CFE)
if IsArray($Pos) Then
        MouseClick("left", $Pos[0], $Pos[1])
        sleep(100)
        call ("generate")
        EndIf
If @error  then
        sleep(1000)
        Call("check1")
        endIf
EndFunc


Func check1 ()
        $Pos = PixelSearch(329, 352, 380, 444, 0x689CFE)
if IsArray($Pos) Then
        MouseClick("left", $Pos[0], $Pos[1])
        call ("generate")
        EndIf
If @error  then
        sleep(1000)
        Call("check2")
        endIf
EndFunc

Func check2 ()
        $Pos = PixelSearch(870, 352, 901, 444, 0x689CFE)
if IsArray($Pos) Then
        MouseClick("left", $Pos[0], $Pos[1])
        sleep(100)
        call ("generate")
        EndIf
If @error  then
        sleep(1000)
        Call("check3")
        endIf
EndFunc

Func check3 ()
        $Pos = PixelSearch(329, 352, 380, 444, 0x689CFE)
if IsArray($Pos) Then
        MouseClick("left", $Pos[0], $Pos[1])
        call ("generate")
        EndIf
If @error  then
        sleep(1000)
        Call("reset")
        endIf
EndFunc


Func reset()
        MouseClick("left",194, 424, 1)
        sleep(7500)
        MouseClick("left", 780, 897, 1)
        sleep(700)
        $random = Random(0, 1, 1)
    If $random = 0 Then
      TrayTip("Бинго", "Бикини", 3, 16)
        babi3()
        TrayTip("Бинго", "Бикини", 0, 16)
    Else
        TrayTip("Бинго", "Минирок", 3, 16)
        babi2()
        TrayTip("Бинго", "Минирок", 0, 16)
                EndIf
        EndFunc
       

        Func babi2()
                MouseClick("left", 746, 937, 1)
                sleep(3000)
                call ("generate")
        EndFunc
       
        Func babi3()
                MouseClick("left", 747, 951, 1)
                sleep(3000)
                call ("generate")
        EndFunc


266903582 08-04-2010 23:53 1388320

Antoschka2, если так за каждым вопросом прыгать на форум, то написание скриптов будет значительно растягиваться во времени.
Предлагаю более простой вариант: расставляй отметки о ходе работы программы в виде месседжбоксов или записей в консоль.
Я, например, предпочитаю вариант с консолью:
Код:

ConsoleWrite("Выполняется строка N"&@CR)
Расставляешь такие пометки в проблемных участках и запускаешь...
Так ты сможешь отследить ход работы программы и понять в каком месте происходит ошибка.

Antoschka2 11-04-2010 00:37 1389768

266903582, хорошая идея. только я не знаю как CONSOLE пользоватся :(

266903582 11-04-2010 15:49 1390111

Antoschka2, в редакторе пишешь "ConsoleWrite", жмешь F1, получаешь всю необходимую информацию...


Время: 22:43.

Время: 22:43.
© OSzone.net 2001-