Есть такой вот скрипт:
В примере Go() я упростил, но суть в общем та же. Функция проверяет цвет точек и кликает, в бесконечном цикле. Причем делает это в реальном времени и если приостановить в каком то месте, то какие то события будут пропущены и не обработаны.
В таком виде скрипт после старта можно остановить только через иконку в трее.
Как организовать реакцию GUI, что б можно было пользоваться кнопками интерфейса?
Как осуществлять остановку для перезапуска и паузу для смены настроек.
И может попутно подскажете, как бороться с тем, что все клики работают только если окно активно. Пользуюсь:
Как продолжать кликать и определять цвет, если окно перестанет быть активным?
Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#Include <date.au3>
#include <GuiEdit.au3>
Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",2)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",2)
Opt("PixelCoordMode",2)
Opt("GUIOnEventMode", 1)
AutoItSetOption ( "GUICloseOnESC", 1 )
Global $mainwindow, $h_Exit, $h_Start, $h_Pause, $h_Stop
$mainwindow = GUICreate ("mainwindow", 360, 430)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$EditScreen = GUICtrlCreateEdit (" ", 2, 2, 357, 404, BitOR($ES_READONLY, $WS_EX_STATICEDGE, $WS_VSCROLL, $ES_AUTOVSCROLL))
; Digit's buttons
$h_Exit = GUICtrlCreateButton("Выход", 313, 409, 45, 20)
GUICtrlSetOnEvent($h_Exit, "CLOSEClicked")
$h_Stop = GUICtrlCreateButton("Стоп", 219, 409, 45, 20)
GUICtrlSetOnEvent($h_Stop, "h_Stop")
$h_Pause = GUICtrlCreateButton("Пауза", 172, 409, 45, 20)
GUICtrlSetOnEvent($h_Pause, "h_Pause")
$h_Start = GUICtrlCreateButton("Старт", 125, 409, 45, 20)
GUICtrlSetOnEvent($h_Start, "h_Start")
GUISetState()
While 1
WEnd
Func CLOSEClicked()
Exit
EndFunc
Func h_Stop()
EndFunc
Func h_Pause()
EndFunc
Func h_Start()
Go()
EndFunc
Func Go()
Local $A
While 1
$A += 1
$A -=1
WEnd
EndFunc
В примере Go() я упростил, но суть в общем та же. Функция проверяет цвет точек и кликает, в бесконечном цикле. Причем делает это в реальном времени и если приостановить в каком то месте, то какие то события будут пропущены и не обработаны.
В таком виде скрипт после старта можно остановить только через иконку в трее.
Как организовать реакцию GUI, что б можно было пользоваться кнопками интерфейса?
Как осуществлять остановку для перезапуска и паузу для смены настроек.
И может попутно подскажете, как бороться с тем, что все клики работают только если окно активно. Пользуюсь:
Код:
ControlClick ( $titl, "", $klass , "left" , 1, $k_cdx, $k_cdy)
; определяю цвет точки
$c = PixelGetColor ($posX, $posY)
Как продолжать кликать и определять цвет, если окно перестанет быть активным?