1 (изменено: hifana12, 2013-03-17 19:31:00)

Тема: AHK:Нажатие кнопок в окне

Сталкнулся вот с такой проблемой.

Вот сам код:

F1::

SetTimer, ImageCheck, 100
return
ImageCheck:
{
PixelSearch x, y, 1508, 81, 1508, 96, 0xFF0000, 5, Fast
    if ( ErrorLevel > 0 )
{
PixelSearch x, y, 3, 25, 1675, 1048, 0xFF0000, 5, Fast
    if ( ErrorLevel > 0 )
        {
        ;если ErrorLevel > 0
        Send, {F2}
sleep, 1000
        return
        }
Send, {F4}
sleep, 50
Click %x% %y%
sleep, 100
return
}
F3::Pause

Надо чтобы после этого скрипта через 10 мин.

Выполнялся этот:


Send @storage
sleep 300
Send {Enter}
sleep 400
Click down, left, 336, 219
Click up right, left, 137, 166
sleep 50
Send 80
sleep 10
Send {Enter}
sleep 100
MouseClick, left, 520, 418

и так постоянно.

Как мне их объеденить?

2

Re: AHK:Нажатие кнопок в окне

Наверно записать всё в цикл:

Loop  {  

   •••••••••

}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK:Нажатие кнопок в окне

Хотя бы пример как начать.

4

Re: AHK:Нажатие кнопок в окне

http://forum.script-coding.com/viewtopi … 887#p69887

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK:Нажатие кнопок в окне

Как в моём случае следует начинать цикл?

6 (изменено: serzh82saratov, 2013-03-17 20:26:13)

Re: AHK:Нажатие кнопок в окне



F1:: 
    Tick := 600  ; Интервал перехода к 2 подпрограмме (600 - секунды)
    Loop      ; Общий цикл
    {   
        StartLoop := A_TickCount
        Loop      ; Цикл выполнения 1 подпрограммы
        { 
            sleep, 100     ; Интервал выполнения 1 подпрограммы
            PixelSearch x, y, 1508, 81, 1508, 96, 0xFF0000, 5, Fast
            if ( ErrorLevel > 0 )
            {
                PixelSearch x, y, 3, 25, 1675, 1048, 0xFF0000, 5, Fast
                if ( ErrorLevel > 0 )
                {
                    ;если ErrorLevel > 0
                    Send, {F2}
                    sleep, 1000
                    Continue     ; Не выполняя дальше начинаем цикл выполнения 1 подпрограммы снова
                } 
                Send, {F4}
                sleep, 50
                Click %x% %y%     ; Далее начинаем цикл выполнения 1 подпрограммы снова
            }
        }    Until ( A_TickCount - StartLoop ) / 1000 >= Tick     ; Если прошло более 600 - секунд с запуска цикла, прерываем его и выполняем дальше
        
        Send @storage
        sleep 300
        Send {Enter}
        sleep 400
        Click down, left, 336, 219
        Click up right, left, 137, 166
        sleep 50
        Send 80
        sleep 10
        Send {Enter}
        sleep 100
        MouseClick, left, 520, 418       ; Далее начинаем общий цикл снова
    }

Отредактировано serzh82saratov (Сегодня 20:10:58)
Исправил свои ошибки в отступах. И вам советую соблюдать

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7 (изменено: hifana12, 2013-03-17 20:24:52)

Re: AHK:Нажатие кнопок в окне

serzh82saratov пишет:


F1:: 
    Tick := 600  ; Tick это секунды 
    Loop 
    {   
        StartLoop := A_TickCount
        Loop 
        { 
            sleep, 100     ; Интервал этого цикла
            PixelSearch x, y, 1508, 81, 1508, 96, 0xFF0000, 5, Fast
            if ( ErrorLevel > 0 )
            {
                PixelSearch x, y, 3, 25, 1675, 1048, 0xFF0000, 5, Fast
                if ( ErrorLevel > 0 )
                {
                    ;если ErrorLevel > 0
                    Send, {F2}
                    sleep, 1000
                    Continue
                } 
                Send, {F4}
                sleep, 50
                Click %x% %y%  
            }
        }    Until ( A_TickCount - StartLoop ) / 1000 >= Tick
        
        Send @storage
        sleep 300
        Send {Enter}
        sleep 400
        Click down, left, 336, 219
        Click up right, left, 137, 166
        sleep 50
        Send 80
        sleep 10
        Send {Enter}
        sleep 100
        MouseClick, left, 520, 418  
    }

Отредактировано serzh82saratov (Сегодня 20:10:58)
Исправил свои ошибки в отступах. И вам советую соблюдать



Спасибо огромное!
Аську можно?

8

Re: AHK:Нажатие кнопок в окне

Спасибо огромное!
Аську можно?

Добавил комментариев если что-то не понятно.
Аськи нет, напишите на почту через профиль форума.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9 (изменено: hifana12, 2013-03-17 21:16:47)

Re: AHK:Нажатие кнопок в окне

Напишу если что.

10 (изменено: serzh82saratov, 2013-03-17 22:50:06)

Re: AHK:Нажатие кнопок в окне

В связи с вопросом на почту и тем что на лицо есть некоторое не допонимание решения вопроса, осмелюсь предложить более наглядное решение разбитое на подпрограммы, запускающиеся из управляющей, и простой в понимании и редактировании:



F1:: 
    Loop  { 
        StartLoop := A_TickCount , Tick := 3    ; (Tick - секунды) В течении скольки секунд повторно запукать "PR_1"
        While, ( A_TickCount - StartLoop ) / 1000 < Tick
            Gosub, PR_1
        Loop 10    ; 10 - Сколько раз повторно запукать "PR_2"
            Gosub, PR_2
        Gosub, PR_3    ; 1 раз запустить "PR_3"
    }
    Return

PR_1: 
    ToolTip % " Подпрограмма: PR_1 `n`n Вызов №  " A_Index  "`n`n Осталось секунд  " Round( Tick-( A_TickCount - StartLoop ) / 1000, 1)
    sleep, 100
    Return    
    
PR_2: 
    ToolTip % " Подпрограмма: PR_2 `n`n Вызов №  " A_Index
    sleep, 200
    Return

PR_3: 
    ToolTip % " Подпрограмма: PR_3 `n`n Эта подпрограмма`nвыполняется только один раз`n и в конце общего цикла"
    sleep, 2000
    Return

Esc::
    ExitApp 

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK:Нажатие кнопок в окне

Помогите добавить в начало цикла  10 прокруток  вниз и потом 5 прокруток вверх

Вот сам код:

F1:: 
    Tick := 60
    Loop 
    {   
        StartLoop := A_TickCount
        Loop
        { 
            sleep, 80   
            PixelSearch x, y, 600, 81, 600, 96, 0xFF0000, 5, Fast
            if ( ErrorLevel > 0 )
            {
                PixelSearch x, y, 3, 25, 1675, 1048, 0xFF0000, 5, Fast
                if ( ErrorLevel > 0 )
                {
                    ;если ErrorLevel > 0
                    Send, {F2}
                    sleep, 1000
                    Continue
                } 
                Send, {F3}
                sleep, 5
                Click %x% %y%  
            }
        }    Until ( A_TickCount - StartLoop ) / 1000 >= Tick
        А тут 10 прокруток  вниз и 10 прокруток вверх 
        Send @storage
        sleep 400
        Send {Enter}
        sleep 400
        Click down, left, 56, 219
        sleep, 20
        Click up right, left, 424, 205
        sleep 20
        Send {Enter}
        sleep, 100
        Click down, left, 56, 219
        sleep, 20
        Click up right, left, 424, 205
        sleep 20
        Send {Enter}
        sleep, 100
        Click down, left, 56, 219
        sleep, 20
        Click up right, left, 424, 205
        sleep 20
        Send {Enter}
        Click down, left, 56, 219
        sleep, 20
        Click up right, left, 424, 205
        sleep 20
        Send {Enter}
        sleep, 100
        Click down, left, 56, 219
        sleep, 20
        Click up right, left, 424, 205
        sleep 20
        Send {Enter}
        sleep, 100
        Click down, left, 56, 219
        sleep, 20
        Click up right, left, 424, 205
        sleep 20
        Send {Enter}
        sleep 100
        MouseClick, left, 512, 377  

    }

F8::Pause

12

Re: AHK:Нажатие кнопок в окне

И разобратся тебе лень, и сформулировать...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK:Нажатие кнопок в окне

serzh82saratov пишет:

И разобратся тебе лень, и сформулировать...

Уже разобрался