Что нового

Запись функции в переменую

edward_freedom

Осваивающий
Сообщения
200
Репутация
44
Код:
Global $Paused
HotKeySet("{PAUSE}", "TogglePause") 
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip("Script is Paused")
WEnd
ToolTip("")
EndFunc
;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 277, 96, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 8, 8, 75, 25)
$Label1 = GUICtrlCreateLabel("0", 88, 16, 74, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;

$_cd=""

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
			
			case $Button1
	$_cd = Inputbox("another","Color:", $_cd) 
			GUICtrlSetData($Label1, $_cd)									
	EndSwitch
WEnd

Как сделать,чтобы координаты записались в переменую$_cd=""
Смысл того,чтобы mouseclick(вот координаты из переменой)
Mouseclick($_cd)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: Переменая

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы

[Переменая] это неприемлемое название темы, переименуйте тему иначе она будет закрыта.

С уважением, Модератор раздела.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
; ...
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
           
		Case $Button1
			$_cd = Inputbox("another","Color:", $_cd)
			$_cd = StringSplit($_cd, "/", 2)
			If @error Then 
				MsgBox(48, "Syntax Error!", "Use a separate origin char '/' ")
				ContinueLoop
			EndIf
				GUICtrlSetData($Label1, "X: " & $_cd[0])                                  
				GUICtrlSetData($Label2, "Y: " & $_cd[1])
				MouseClick("left", $_cd[0], $_cd[1])
    EndSwitch
WEnd
; ...
 
Автор
E

edward_freedom

Осваивающий
Сообщения
200
Репутация
44
Код:
Global $Paused
HotKeySet("{PAUSE}", "TogglePause") 
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip("Script is Paused")
WEnd
ToolTip("")
EndFunc
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 185, 230, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 8, 16, 75, 25)
$Label1 = GUICtrlCreateLabel("0", 96, 8, 50, 17)
$Label2 = GUICtrlCreateLabel("0", 96, 40, 50, 17)
$Button2 = GUICtrlCreateButton("Button2", 8, 120, 75, 25)
$Label3 = GUICtrlCreateLabel("0", 88, 112, 42, 17)
$Label4 = GUICtrlCreateLabel("0", 88, 144, 42, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$_cd="303, 332"
$_ab="828, 332"

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        Case $Button1
            $_cd = Inputbox("another","Color:", $_cd)
            $_cd = StringSplit($_cd, ",", 2)
            If @error Then 
                MsgBox(48, "Syntax Error!", "Use a separate origin char '/' ")
                ContinueLoop
            EndIf
                GUICtrlSetData($Label1, "X: " & $_cd[0])                                  
                GUICtrlSetData($Label2, "Y: " & $_cd[1])
                While 1
	            If PixelGetColor(239, 360) = 0x8E0000 Then
				MouseClick("left", $_cd[0], $_cd[1])
	            EndIf
WEnd
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		Case $Button2
            $_ab = Inputbox("another","Color:", $_ab)
            $_ab = StringSplit($_ab, ",", 2)
            If @error Then 
                MsgBox(48, "Syntax Error!", "Use a separate origin char '/' ")
                ContinueLoop
            EndIf
                GUICtrlSetData($Label3, "X: " & $_ab[0])                                  
                GUICtrlSetData($Label4, "Y: " & $_ab[1])
                While 1
	            If PixelGetColor(469, 380) = 0x730000 Then
				MouseClick("left", $_ab[0], $_ab[1])
			EndIf
			WEnd
    EndSwitch
WEnd

While 
	If PixelGetColor(239, 360) = 0x8E0000 Then
	MouseClick("left", $_cd[0], $_cd[1])
	EndIf
WEnd

Как зациклить,чтобы если цвет появился,кликнуть туда куда было написано.Сейчас выполняеться или первый скрипт или второй,а мне надо чтобы оба и более
 
Автор
E

edward_freedom

Осваивающий
Сообщения
200
Репутация
44
Код:
AdlibRegister ()

:shok:Почитал пример,не понял нечего :'(
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
edward_freedom

AdlibRegister вызывает пользовательскую функцию с заданным интервалом. По умолчанию четверть секунды. Скрипт при этом может выполнять свою основную задачу.

Так вот, напишите функцию сканирования участка экрана на нужный пиксель. И передайте имя своей функции AdlibRegister в качестве первого параметра, вторым параметром (опционально) можете задать интервал вызова вашей функции.
В случае обнаружения нужного пикселя, ваша функция возвратит массив или переменную (на ваше усмотрение) с чем вы, и будите работать дальше.
Собственно всё :smile:
 
Верх