Что нового

[Элементы GUI] Как заставить GuI выполнять мои команды?

sj25

Новичок
Сообщения
3
Репутация
0
Написал не большой скрипт подобного содержания




Код:
; #include <Misc.au3>
#RequireAdmin
 Global $Autoshoot = 0
 ;-------гор клавиши
 HotKeySet("{Home}", "startAutoshoot") ;старт
 HotKeySet("{DELETE}", "offAutoshoot") ;стоп
 HotKeySet("{Esc}", "Terminate")
 HotKeySet("{end}", "Terminat")

 
 $Terminat=0
 
; Основные настройки

; 1920*1080  = 1
; 1600*900   = 2
; 1280*1024  = 3

$razreshenie = 2

; $1920_1080
If $razreshenie=1 then  
	
	   ; Точки считывания информации

$k1=70 
$l1=418
$k2=$k1+20
$l2=$l1+30;480
EndIF



;  1600_900
If $razreshenie=2 then   
	
	   ; Точки считывания информации

$k1=600          
$l1=368
$k2=$k1+20
$l2=$l1+30;480
EndIF



; 1280*1024
If $razreshenie=3 then   
	
	   ; Точки считывания информации

$k1=70         
$l1=437
$k2=$k1+20
$l2=$l1+30;480

EndIF

while


If $Terminat=1 Then
MouseMove( $map, $map2)              ;  карта
MouseDown("left") ; нажмем ЛКМ
Sleep(50) ; пауза 5 секунд
MouseUp("left") ; отпустим ЛКМ

Sleep(500) ; пауза 5 секунд

MouseMove( $loc, $loc2)                    ; лока
MouseDown("left") ; нажмем ЛКМ
Sleep(50) ; пауза 5 секунд
MouseUp("left") ; отпустим ЛКМ

EndIf
Wend


Создал GUI интерфейс с кнопками (1920*1080, 1600*900 и 1080*1024).Хочу связать его со своим скриптом, чтоб после нажатия кнопки скрипт начинал работать с выбранными мною переменными.
Так же в скрипте есть такая команда PixelSearch($k1, $l1, $k2, $l2, 0xc70a09, 39, 1), как в GUI создать поле ввода чтоб можно было указать номер цвета а скрипт считывал его?
Я дилетант в этом деле, это мой первый скрипт.
Изначально идея такая: запускаю скрипт, выбираю в окне необходимые настройки, запускаю с горячей клавиши.
Не судите пожалуйста строго, надеюсь на ваше понимание. Заранее спасибо.
 
Автор
S

sj25

Новичок
Сообщения
3
Репутация
0
А можно ответ в виде готового кода, например:
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Form2", 405, 294, 289, 168)
GUISetBkColor(0x008080)
$Input1 = GUICtrlCreateInput("Input1", 16, 16, 105, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd


Это создано окно с полем ввода в KODA, а как реализовать дальше?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Код:
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $Input1
            $text = GUICtrlRead($Input1)
            MsgBox(0, "Текст введенный в окно", $text)
    EndSwitch
WEnd
 
Автор
S

sj25

Новичок
Сообщения
3
Репутация
0
С этим разобрался, большое спасибо.
осталось разобраться с этим
Создал GUI интерфейс с кнопками (1920*1080, 1600*900 и 1080*1024).Хочу связать его со своим скриптом, чтоб после нажатия кнопки скрипт начинал работать с выбранными мною переменными.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Ну добавь в окно ещё и кнопку (например $Button1) и потом:
Код:
Case $Button1
  ; Сюда вставь код который идёт в твоём скрипте
   ; между While и WEnd.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
sj25 [?]
А можно ответ в виде готового кода,
Код:
#RequireAdmin

; Opt("PixelCoordMode", 2)

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $Autoshoot = 0
;-------гор клавиши
HotKeySet("{Home}", "startAutoshoot") ;старт
HotKeySet("{DELETE}", "offAutoshoot") ;стоп
HotKeySet("{Esc}", "Terminate")
HotKeySet("{end}", "Terminat")

$Terminat = 0

; Основные настройки

; 1920*1080  = 1
; 1600*900   = 2
; 1280*1024  = 3

Local $aResolution[4]

#Region  Form

$Form1 = GUICreate("20173", 253, 192, 448, 253)

$Button1 = GUICtrlCreateButton("1920 x 1080", 169, 17, 75, 25)
$Button2 = GUICtrlCreateButton("1600 x 900", 169, 50, 75, 25)
$Button3 = GUICtrlCreateButton("1280 x 1024", 169, 82, 75, 25)

$Group1 = GUICtrlCreateGroup("PixelSearch", 9, 11, 153, 97)
$Label1 = GUICtrlCreateLabel("Left:", 22, 40, 25, 17)
$Left = GUICtrlCreateInput("", 51, 38, 25, 21)
$Label2 = GUICtrlCreateLabel("Top:", 22, 67, 26, 17)
$Top = GUICtrlCreateInput("", 51, 65, 25, 21)
$Label3 = GUICtrlCreateLabel("Right:", 80, 40, 32, 17)
$Right = GUICtrlCreateInput("", 122, 38, 25, 21)
$Label4 = GUICtrlCreateLabel("Bottom:", 80, 67, 39, 17)
$Bottom = GUICtrlCreateInput("", 122, 65, 25, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)

$Group2 = GUICtrlCreateGroup("Coord", 8, 120, 153, 57)
$Label5 = GUICtrlCreateLabel("Y:", 90, 144, 14, 17)
$Y = GUICtrlCreateInput("", 106, 142, 25, 21)
$Label6 = GUICtrlCreateLabel("X:", 34, 144, 14, 17)
$X = GUICtrlCreateInput("", 50, 142, 25, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)

$Button4 = GUICtrlCreateButton("Search", 168, 136, 75, 25)

GUISetState(@SW_SHOW)

#EndRegion Form

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_Resolution($aResolution, 1)
		Case $Button2
			_Resolution($aResolution, 2)
		Case $Button3
			_Resolution($aResolution, 3)
		Case $Button4
			_Search($aResolution)
	EndSwitch

	If $Terminat = 1 Then

		MouseMove( $map, $map2)	;  карта
		MouseDown("left")			; нажмем ЛКМ
		Sleep(50)					; пауза 5 секунд
		MouseUp("left")			; отпустим ЛКМ
		Sleep(500)					; пауза 5 секунд
		MouseMove( $loc, $loc2)	; лока
		MouseDown("left")			; нажмем ЛКМ
		Sleep(50)					; пауза 5 секунд
		MouseUp("left")			; отпустим ЛКМ

	EndIf

WEnd


Func _Resolution(ByRef $aResolution, $i) ; Procedure

	Switch $i
		Case 1
			$aResolution[0] = 70							; $k1
			$aResolution[1] = 418						; $l1
			$aResolution[2] = $aResolution[0]+20	; $k2
			$aResolution[3] = $aResolution[1]+30	; $l2 480
			GUICtrlSetData($Left, $aResolution[0])
			GUICtrlSetData($Top, $aResolution[1])
			GUICtrlSetData($Right, $aResolution[2])
			GUICtrlSetData($Bottom, $aResolution[3])
		Case 2
			$aResolution[0] = 600
			$aResolution[1] = 368
			$aResolution[2] = $aResolution[0]+20	; $k2
			$aResolution[3] = $aResolution[1]+30	; $l2 480
			GUICtrlSetData($Left, $aResolution[0])
			GUICtrlSetData($Top, $aResolution[1])
			GUICtrlSetData($Right, $aResolution[2])
			GUICtrlSetData($Bottom, $aResolution[3])
		Case 3
			$aResolution[0] = 70
			$aResolution[1] = 437
			$aResolution[2] = $aResolution[0]+20	; $k2
			$aResolution[3] = $aResolution[1]+30	; $l2 480
			GUICtrlSetData($Left, $aResolution[0])
			GUICtrlSetData($Top, $aResolution[1])
			GUICtrlSetData($Right, $aResolution[2])
			GUICtrlSetData($Bottom, $aResolution[3])
	EndSwitch

EndFunc ;==>_Resolution

Func _Search($aResolution)

	Local $aCoord = PixelSearch($aResolution[0], $aResolution[1], $aResolution[2], $aResolution[3], 0xc70a09, 39, 1)
	If Not @error Then
		GUICtrlSetData($X, $aCoord[0])
		GUICtrlSetData($Y, $aCoord[1])
		Return 1
	EndIf
	GUICtrlSetData($X, '')
	GUICtrlSetData($Y, '')
	Return 0
EndFunc ;==>_Search
 
Верх