Что нового

[Элементы GUI] привязка запуска скрипта к кнопке "старт"в GUI

AsimA

Новичок
Сообщения
5
Репутация
0
Подскажите пожалуйста,как привязать скрипт к кнопке старт в окне GUI? (т.е.чтоб он запускался не при открытии окна а при нажатии на старт,а останавливался при нажатии стоп. вот окно
Код:
#include <GUIConstants.au3>

GUICreate("Мини рыбалка")  

Opt("GUICoordMode",2)
GUICtrlCreateButton ("Старт",  50, 30, 70) 
GUICtrlCreateButton ( "Стоп",  -70, +250)

GUISetState ()       
While 1
    $msg = GUIGetMsg()
    
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
А вот скрипт.
Код:
WinWaitActive("AikaClient")
$begin = TimerInit()
While 1
    Send("1")
	Sleep(500)
    MouseClick('left',762, 239  )
    Sleep(6500)
    Send("{Spacebar} ")
	Sleep(500)
    If TimerDiff($begin) > 8 * 60 * 1000 Then
	Send("8")
	$begin = TimerInit()
	EndIf
    Wend
если можно поподробнее,а то уже голову сломал)
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Не помешает оформить тему как полагается..

Код:
#include <GUIConstants.au3>

GUICreate("Мини рыбалка")  

Opt("GUICoordMode",2)
$Start=GUICtrlCreateButton ("Старт",  50, 30, 70) 
GUICtrlCreateButton ( "Стоп",  -70, +250)

GUISetState ()       
While 1
    $msg = GUIGetMsg()
    
    If $msg = $GUI_EVENT_CLOSE Then
        ExitLoop
    ElseIf $msg = $Start Then
        WinWaitActive("AikaClient")
        $begin = TimerInit()
        While 1
            Send("1")
            Sleep(500)
            MouseClick('left',762, 239  )
            Sleep(6500)
            Send("{Spacebar} ")
            Sleep(500)
            If TimerDiff($begin) > 8 * 60 * 1000 Then
                Send("8")
                $begin = TimerInit()
            EndIf
        Wend
    EndIf
Wend

И вообще, юзайте поиск. На форуме КУЧА примеров
 
Автор
A

AsimA

Новичок
Сообщения
5
Репутация
0
Не помогло.Скрипт сразу запускаеться сразу же при открытии GUI,а не при нажатии кнопке старт.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
#include <GUIConstants.au3>

Global $semafore = False, $counter = 0

GUICreate("старт - стоп", 150, 170)

Opt("GUICoordMode",2)
$bStart = GUICtrlCreateButton ("Старт",  20, 20, 100)
$oShow = GUICtrlCreateLabel("0", -100, +20, 100, 40, 1)
$bStop = GUICtrlCreateButton ( "Стоп",  -100, +20, 100, 26)
GUICtrlSetFont($oShow,24)

GUISetState ()
While 1
    $msg = GUIGetMsg()

    Switch $msg
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $bStart
			$semafore = True
		Case $bStop
			$semafore = False
	EndSwitch

	If $semafore Then
		$counter += 1
		GUICtrlSetData($oShow,$counter)
	EndIf

Wend

Извините за корявость, GUI -это не моё...
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
В моём примере старт работает как надо.. А стоп сделать весьма проблематично. Проще паузу.

А по сути нужно придумать другой способ запуска цикла или попробовать обойтись без цикла вообще
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Вообще все давно уже вешают выход на
Код:
HotKeySet

и не парятся с кнопкой "Стоп"
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Верх