Что нового

Запустить, Остановить через GUI

Paul_Markey

Новичок
Сообщения
18
Репутация
1
Как заставить кнопку "Остановить" функционировать? Соответственно пример из кода не работает. Пытался запихнуть то что в кнопке запустить в функцию, так же безрезультатно. OnEvent тоже пробовал. Не получилось. Хотя возможно сделал ошибку. Так как данный режим совсем не знаю.
Код:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$UsedMP = GUICreate("UsedMP", 484, 235)
GUICtrlCreateLabel("Настройка программы", 136, 8, 194, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
GUICtrlCreateLabel("Минимум MP", 8, 40, 71, 17)
GUICtrlCreateLabel("Координата Y :", 48, 128, 80, 17)
$miny = GUICtrlCreateInput("", 136, 128, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlCreateLabel("Координата X :", 48, 96, 80, 17)
$minx = GUICtrlCreateInput("", 136, 96, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlCreateLabel("Цвет при минимуме :", 16, 64, 112, 17)
$mincolor = GUICtrlCreateInput("", 136, 64, 81, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlCreateLabel("Максимум MP", 248, 40, 77, 17)
GUICtrlCreateLabel("Координата Y :", 296, 128, 80, 17)
$maxy = GUICtrlCreateInput("", 384, 128, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlCreateLabel("Координата X :", 296, 96, 80, 17)
$maxx = GUICtrlCreateInput("", 384, 96, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlCreateLabel("Цвет при максимуме :", 256, 64, 118, 17)
$maxcolor = GUICtrlCreateInput("", 384, 64, 81, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
$saveset = GUICtrlCreateButton("Сохранить настройки", 344, 192, 131, 25)
$stoping = GUICtrlCreateButton("Остановить", 88, 192, 75, 25)
$starting = GUICtrlCreateButton("Запустить", 8, 192, 75, 25)
GUICtrlCreateLabel("Клавиша с Mana Point :", 120, 160, 121, 17)
$Combo = GUICtrlCreateCombo("", 248, 160, 89, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1,"1|2|3|4|5|6|7|8|9|0|-|=|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12","1")
GUISetState(@SW_SHOW)

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $starting
			$start = True
			$minx = GUICtrlRead ($minx)
			$miny = GUICtrlRead ($miny)
			$mincolor = GUICtrlRead ($mincolor)
			$maxx = GUICtrlRead ($maxx)
			$maxy = GUICtrlRead ($maxy)
			$maxcolor = GUICtrlRead ($maxcolor)
			$Combo = GUICtrlRead ($Combo)
			$Combo = "{"&$Combo&"}"
			While $start
				If WinActive ("Lineage II   ") Then
					$mp = PixelGetColor ($minx, $miny)
					If $mp = $mincolor Then
						$mp1 = True
						While $mp1
							Send ($Combo)
							$mp = PixelGetColor ($maxx, $maxy)
							If $mp = $maxcolor Then
								$mp1 = False
							EndIf
							Sleep(300)
						WEnd
					EndIf
					Sleep(1000)
				EndIf
			WEnd
		Case $stoping
			$start = False
		Case $next
	EndSwitch
WEnd
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
http://autoit-script.ru/index.php/topic,13426
 
Автор
P

Paul_Markey

Новичок
Сообщения
18
Репутация
1
InnI сказал(а):
http://autoit-script.ru/index.php/topic,13426
Данный топик смотрел. Но видимо проглядел хорошее решение от AZJIO.
Добавил в код проверку
Код:
If GUIGetMsg() = $stoping Then
	ExitLoop
EndIf
 
Верх