Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата HORRIBLE:
Смысл работы, как только я нажимаю кнопочку $button_for_func, два файлика func_1, func_2 должны запуститься и висеть в памяти и смотреть, что вписано в $input_for_func_1, $input_for_func_2 и в зависимости от того, что в них вписано выполнять те или иные предписания. »
Только немного непонятно, зачем 2 дополнительных файла тут? В любом случае, чуть ниже три файла, и ещё один, в которм совмещаются все три:

Lico.au3

Код: Выделить весь код
#include <GUIConstantsEx.au3>

HotKeySet("{ESC}", "Term")

GUICreate("My App", 1000, 700)

$Label_for_func_1 = GUICtrlCreateLabel("Sost func_1 ", 10, 10, 80, 20)
$Label_for_func_2 = GUICtrlCreateLabel("Sost func_2 ", 10, 50, 80, 20)

$Input_for_func_1 = GUICtrlCreateInput("0", 100, 10, 60, 20)
$Input_for_func_2 = GUICtrlCreateInput("0", 100, 50, 60, 20)

$Button_for_func = GUICtrlCreateButton("Turn on func_1 and 2", 170, 50, 150, 20)

$Label_from_func_1 = GUICtrlCreateLabel("", 350, 10, 100, 20)
$Label_from_func_2 = GUICtrlCreateLabel("", 350, 50, 100, 20)

GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button_for_func
            Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\Func_1.au3"', @ScriptDir)
            Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @ScriptDir & '\Func_2.au3"', @ScriptDir)
    EndSwitch
WEnd

Func Term()
    Exit
EndFunc

Func_1.au3

Код: Выделить весь код
#NoTrayIcon
$sTitle = "[CLASS:AutoIt v3 GUI;TITLE:My App]"

While 1
    $sInput1_Text = ControlGetText($sTitle, "", "Edit1")

    If $sInput1_Text = 1 Then
        ControlSetText($sTitle, "", "Static3", "1-я задержка 5 с.")
        Sleep(5000)
        ControlSetText($sTitle, "", "Static3", "2-я задержка 2 с.")
        Sleep(2000)
        ControlSetText($sTitle, "", "Static3", "сост. 1")
    Else
        ControlSetText($sTitle, "", "Static3", "сост. 0")
    EndIf

    Sleep(100)
WEnd

Func_2.au3

Код: Выделить весь код
$sTitle = "[CLASS:AutoIt v3 GUI;TITLE:My App]"

While 1
    $sInput2_Text = ControlGetText($sTitle, "", "Edit2")

    If $sInput2_Text = 1 Then
        ControlSetText($sTitle, "", "Static4", "Задержка 10 с.")
        Sleep(10000)
        ControlSetText($sTitle, "", "Static4", "Сост. 1")
    Else
        ControlSetText($sTitle, "", "Static4", "Сост. 0")
    EndIf

    Sleep(100)
WEnd



Lico_All.au3

Код: Выделить весь код
#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)
HotKeySet("{ESC}", "_Quit")

Global $iCheckInputs = False
Global $iTimer_1 = -1, $iTimer_2 = -1, $iTimer_3 = -1

$hGUI = GUICreate("My App", 1000, 700)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Main_Events")

$Label_for_func_1 = GUICtrlCreateLabel("Sost func_1 ", 10, 10, 80, 20)
$Label_for_func_2 = GUICtrlCreateLabel("Sost func_2 ", 10, 50, 80, 20)

$Input_for_func_1 = GUICtrlCreateInput("0", 100, 10, 60, 20)
$Input_for_func_2 = GUICtrlCreateInput("0", 100, 50, 60, 20)

$Button_for_func = GUICtrlCreateButton("Turn on func_1 and 2", 170, 50, 150, 20)
GUICtrlSetOnEvent(-1, "_Main_Events")

$Label_from_func_1 = GUICtrlCreateLabel("", 350, 10, 100, 20)
$Label_from_func_2 = GUICtrlCreateLabel("", 350, 50, 100, 20)

GUISetState()

While 1
    _CheckInputs()
    Sleep(1000)
WEnd

Func _Main_Events()
    Switch @GUI_CtrlId
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button_for_func
            $iCheckInputs = Not $iCheckInputs
    EndSwitch
EndFunc

Func _CheckInputs()
    If Not $iCheckInputs Then Return

    ;Func_1.au3
    If GUICtrlRead($Input_for_func_1) = 1 Then
        If $iTimer_1 = -1 Then
            GUICtrlSetData($Label_from_func_1, "1-я задержка 5 с.")
            $iTimer_1 = TimerInit()
        EndIf

        If TimerDiff($iTimer_1) > 5000 Then
            If $iTimer_2 = -1 Then
                GUICtrlSetData($Label_from_func_1, "2-я задержка 2 с.")
                $iTimer_2 = TimerInit()
            EndIf

            If TimerDiff($iTimer_2) > 2000 Then GUICtrlSetData($Label_from_func_1, "сост. 1")

            If TimerDiff($iTimer_1) > 5000 And TimerDiff($iTimer_2) > 2000 Then
                $iTimer_1 = -1
                $iTimer_2 = -1
            EndIf
        EndIf
    Else
        GUICtrlSetData($Label_from_func_1, "сост. 0")
    EndIf

    ;Func_2.au3
    If GUICtrlRead($Input_for_func_2) = 1 Then
        If $iTimer_3 = -1 Then
            GUICtrlSetData($Label_from_func_2, "Задержка 10 с.")
            $iTimer_3 = TimerInit()
        EndIf

        If TimerDiff($iTimer_3) > 10000 Then
            GUICtrlSetData($Label_from_func_2, "Сост. 1")
            $iTimer_3 = -1
        EndIf
    Else
        GUICtrlSetData($Label_from_func_2, "Сост. 0")
    EndIf
EndFunc

Func _Quit()
    Exit
EndFunc


Цитата Рысь:
как окрашивать код в цвета Автоита при посте на форуме? »
См. утилиту Au3ToPost .

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:34, 17-09-2008 | #898