Что нового

Клики в разные окна в одном GUI

SkinWarS

Новичок
Сообщения
26
Репутация
0
Доброго времени суток, столкнулся с проблемой и никак не могу её решить, вообщем суть такова..запускаю свою программу в ней запускаю 1 и 2 кнопку но скрипт выполняется только тот который я последней кнопкой запускал

Код:
#include <GUIConstants.au3>
Global $GUI1, $IsClose = 0, $GUI1BTN1, $GUI1BTN2, $GUI1BTN3, $GUI1BTN4, $iActionType = 0
GUISetBkColor(0xE0FFFF)
_GUI1()
While Not $IsClose
    Switch $iActionType
        Case 1
            ;CODE_START;
    Sleep(1000); задержка 1 секунда
   WinWait("+++ | ----","Полуавтомат")
ControlClick("+++ | ----","Полуавтомат","TButton6")
ControlClick("+++ | ----","Полуавтомат","TButton6")
ControlClick("+++ | ----","Полуавтомат","TButton6")
            ;CODE_END;
		 Case 2
			 qwerty()

         ;CODE_END;

	  Case 3
	ExitLoop 2
        Case Else
            Sleep(100)
    EndSwitch
WEnd


Func _GUI1()
    Opt("GUIOnEventMode", 1)
    $GUI1 = GUICreate("Кликер+", 200, 180, -1, -1, -1, $WS_EX_TOPMOST); поверх всех окон
	GUISetBkColor(0xffffff)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI1Close")
    $GUI1BTN1 = GUICtrlCreateButton("1", 30, 10, 70, 30)
    GUICtrlSetOnEvent($GUI1BTN1, "_GUI1BTN1")
    $GUI1BTN2 = GUICtrlCreateButton("Остановить", 105, 10, 80, 30)
    GUICtrlSetOnEvent($GUI1BTN2, "_GUI1BTN2")
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


    $GUI1BTN3 = GUICtrlCreateButton("2", 30, 60, 70, 30)
    GUICtrlSetOnEvent($GUI1BTN3, "_GUI1BTN3")
    $GUI1BTN4 = GUICtrlCreateButton("Остановить", 105, 60, 80, 30)
    GUICtrlSetOnEvent($GUI1BTN4, "_GUI1BTN4")
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    GUICtrlSetState($GUI1BTN2, $GUI_DISABLE)
    GUISetState()
    GUICtrlSetState($GUI1BTN1, $GUI_FOCUS)

	GUICtrlSetState($GUI1BTN4, $GUI_DISABLE)
    GUISetState()
    GUICtrlSetState($GUI1BTN3, $GUI_FOCUS)

EndFunc   ;==>_GUI1

Func qwerty()

   Sleep(1000); задержка 1 секунда
WinWait("яяя | ----","Полуавтомат")
ControlClick("яяя | ----","Полуавтомат","TButton6")
ControlClick("яяя | ----","Полуавтомат","TButton6")
ControlClick("яяя | ----","Полуавтомат","TButton6")
   Sleep (1000)

EndFunc

Func _GUI1Close()
    $iActionType = 0
    GUIDelete($GUI1)
    $IsClose = 1
EndFunc   ;==>_GUI1Close
Func _GUI1BTN1()
    GUICtrlSetState($GUI1BTN2, $GUI_ENABLE)
    GUICtrlSetState($GUI1BTN2, $GUI_FOCUS)
    GUICtrlSetState($GUI1BTN1, $GUI_DISABLE)
    $iActionType = 1
EndFunc   ;==>_GUI1BTN1
Func _GUI1BTN2()
    $iActionType = 0
    GUICtrlSetState($GUI1BTN1, $GUI_ENABLE)
    GUICtrlSetState($GUI1BTN1, $GUI_FOCUS)
    GUICtrlSetState($GUI1BTN2, $GUI_DISABLE)
EndFunc   ;==>_GUI1BTN2
Func _GUI1BTN3()
    GUICtrlSetState($GUI1BTN4, $GUI_ENABLE)
    GUICtrlSetState($GUI1BTN4, $GUI_FOCUS)
    GUICtrlSetState($GUI1BTN3, $GUI_DISABLE)
    $iActionType = 2
EndFunc   ;==>_GUI1BTN3
Func _GUI1BTN4()
    $iActionType = 0
    GUICtrlSetState($GUI1BTN3, $GUI_ENABLE)
    GUICtrlSetState($GUI1BTN3, $GUI_FOCUS)
    GUICtrlSetState($GUI1BTN4, $GUI_DISABLE)
EndFunc   ;==>_GUI1BTN4
 

Александр_

[url=http://autoit-script.ru/index.php?topic=21393
Сообщения
62
Репутация
2
Если я правильно понимаю, то в autoit не реализуется многопоточность...
 

veretragna

Как писал, так и работает.
Сообщения
140
Репутация
10
Если нужно запустить несколько потоков параллельно, возможно, стоит использовать функцию AdlibRegister.
По щелчку на кнопке Старт вызывать AdlibRegister(...), по кнопке Стоп - AdlibUnregister(...).
Обе функции описаны в справке, ознакомьтесь.
 
Верх