1

Тема: AHK: SetTimer

Добрый день уважаемые пользователи. Суть вопроса такова - захотел сделать условие работы программы по времени, так скажем не большая демоверсия для временного пользования, но не много не разобрался с функцией SetTimer.
Может кто нибудь объяснит мне что именно нужно прописать в условии чтобы исполнить мною задуманное.

ButtonGooooooooooooo - запуск работы программы. на нее то и хочу поставить таймер - то есть по нажатию данной кнопки на клиенте программы запускался таймер на 5 минут - после чего программы выполняла бы условие If (a15=0) - то есть закрытие окна приложения на которое написана программа.

ButtonGooooooooooooo!!!!:
    Gui, Submit, NoHide
    If F15!= Закрыть_ЛС
    {
       a15:=1
    }


    If (a15=0)
    {
    IfWinExist, ххххххххх (Window 800x600)
        WinClose
    }

2

Re: AHK: SetTimer

kamaz пишет:

...по нажатию данной кнопки...

Не вижу ни какой кнопки, тут метка, и не внятное условие. Я не буду вникать в условие, просто дам своё видение этой темы:

F9:: ; хоткей активации таймера
   SetTimer, Refresh, 1000 ; поставил промежуток между интерациями поменьше, только в целях наглядности
   Return

Refresh:
   i++
   ToolTip, интерация таймера № %i% ; эта часть кода,
   Sleep, 500 ; где тултип
   ToolTip ; заменяется на требуемое действие
   If i = 5
      {
         ToolTip, остановка таймера ; это тоже
         Sleep, 750 ; только для наглядности,
         ToolTip ; соответственно убирается, или здесь размещается нужное действие по завершению таймера
         SetTimer, Refresh, Off
         i =
      }
   Return

F12::
   ToolTip, EXIT, 640, 512
   Sleep, 500
   Tooltip
   ExitApp
kamaz пишет:

таймер на 5 минут

Сколько проверок нужного условия должно быть в течении этого времени? В предложенном мною варианте, проверка через каждую секунду в течении пяти секунд, можно чаще за те же пять секунд...

3

Re: AHK: SetTimer

Grey пишет:

Сколько проверок нужного условия должно быть в течении этого времени? В предложенном мною варианте, проверка через каждую секунду в течении пяти секунд, можно чаще за те же пять секунд...

Может я не правильно выразился...
я хочу сделать рабочее время программы 5 минут, то есть после нажатия нкопки Goooo в клиенте запускается таймер и после истечения врмени таймера закрывается окно приложения и программа встает на паузу.


Правильно ли выполенно условие?

ButtonGooooooooooooo!!!!:
    Gui, Submit, NoHide
    If F15!= Закрыть_ЛС
    {
       SetTimer, Refresh, 1000
       a15:=1
    }

Refresh:
   i++
   ToolTip, интерация таймера № %i% ; эта часть кода,
   Sleep, 500 ; где тултип
   IfWinExist, ahk_class Nksp
   WinClose
   If i = 5
      {
         ToolTip, остановка таймера ; это тоже
         Sleep, 750 ; только для наглядности,
         IfWinExist, ahk_class Nksp
         WinClose
         SetTimer, Refresh, Off
         i =
      }
   Return

4

Re: AHK: SetTimer

kamaz пишет:

я хочу сделать рабочее время программы 5 минут

Пример с запуском блокнота на 5 секунд:

F9::
   Run, C:\Windows\system32\notepad.exe
   Sleep, 5000
   WinClose, ahk_class Notepad
   Return

А вот уж если нужно условие, чтобы блокнот (к примеру) по каким-то причинам не закрывался по прошествию времени, надо эти условия изложить подробнее, лично я не врубаюсь, что такое в коде F15!= Закрыть_ЛС, или a15:=1.

kamaz пишет:

...после нажатия нкопки Goooo в клиенте запускается таймер и после истечения врмени таймера закрывается окно приложения и программа встает на паузу.

Нет тут ни какой кнопки, есть метка ButtonGooooooooooooo!!!!, чтобы задействовать всё, что под ней, нужно перейти на неё при посредстве команд: Gosub, Goto, или SetTimer.

5 (изменено: kamaz, 2011-06-14 19:35:25)

Re: AHK: SetTimer

Вот клавиша Gooo и функция ф15

     Gui, Add, Text, x50 y445 w450 h40 cRed, После ТП что хотите?
    Gui, Add, DropDownList, x222 y445 w120 h50 vF15, Закрыть_ЛС||Стоять_в_городе
    Gui, Add, Text, x10 y480 w500 h30 cRed, Сначала нажмите ALT+3 потом на F12 свиток возвращения(тп) поставте!!!
    Gui, Add, Button, x180 y520 w210 h40 , Gooooooooooooo!!!!
    Gui, Add, Button, x180 y560 w210 h40 , Pause
    Gui, Show, Autofit
    Return

    

    ButtonGooooooooooooo!!!!:
    Gui, Submit, NoHide
    If F15!= Закрыть_ЛС
    {
    a15:=1
    }

    Gui, Submit, NoHide
    If F1!= Использовать
    {
       Length1 := 6000000000
    a1=%Length1%
    }

    If F2!= Использовать
    {
       Length2 := 6000000000
    a2=%Length2%
    }

    If F3!= Использовать
    {
       Length3 := 6000000000
    a3=%Length3%
    }

    If F4 != Использовать
    {
       Length4 := 6000000000
    a4=%Length4%
    }

    If F5 != Использовать
    {
       Length5 := 6000000000
    a5=%Length5%
    }

    If F6 != Использовать
    {
       Length6 := 6000000000
    a6=%Length6%
    }

    If F7 != Использовать
    {
       Length7 := 6000000000
    a7=%Length7%
    }

    If F9 != Использовать
    {
       Length9 := 6000000000
    a9=%Length9%
    }
    If F10 != Использовать
    {
       Length10 := 6000000000
    a10=%Length10%
    }

person=%Lenghtradar%
radarsec=%Lenghtradarsec%

hp11=%Length11%
mp12=%Length12%

r:= radarsec/4

Stop = 0

Gosub, Show
return


Show:
k:=0
while k=0
{

    if (a9<1)
      {

        Sleep, 1800
        ControlClick, x30 y70, Mail.ru (Window 800x600)
        Sleep, 1300
        SetKeyDelay, 1
        ControlSend,, {F9},  Mail.ru (Window 800x600)
        SetKeyDelay, 1
        ControlSend,, {F9},  Mail.ru (Window 800x600)
        SetKeyDelay, 1
        Sleep, 1000
        ControlSend,, {Tab},  Mail.ru (Window 800x600)
        SetKeyDelay, 1
        Sleep, 200
        a9=%Length9%
        a9:= a9/4

     }
    a9:=a9-1

6

Re: AHK: SetTimer

А так разговор про гъюи кнопку?, тогда сам таймер где-то тут:

    ButtonGooooooooooooo!!!!:
   SetTimer, closegui, -300000
   Gui, Submit, NoHide
   If F15!= Закрыть_ЛС
   {
   a15:=1
   }

, а метку для таймера расположить в коде после содержимого метки Show:

closegui:
   Gui, Destroy

7 (изменено: kamaz, 2011-06-15 04:01:59)

Re: AHK: SetTimer

Grey огромнейшее спасибо. Получилось то, что и хотел.

ButtonGooooooooooooo!!!!:
SetTimer, Taimer, -120000
Gui, Submit, NoHide
If F15!= Закрыть_ЛС
{
a15:=1
}

Taimer:
Sleep, 1000
IfWinExist
WinClose
Pause