Что нового

[Ошибки] Заполнение переменных через InputBox.

Gzzk

Новичок
Сообщения
104
Репутация
1
Код:
Global $aClsCrd, $aBtnCrd , $BtnClr , $aLT , $aRL , $LkClr
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ###
$Form1_1 = GUICreate("Form1", 301, 158, 189, 112)
$Label1 = GUICtrlCreateLabel("Красный крестик второй вкладки(закрыть):", 8, 8, 228, 17)
$ClsCrd = GUICtrlCreateInput("384, 14", 240, 8, 57, 21)
$Label2 = GUICtrlCreateLabel("Координаты голубой кнопки:", 8, 40, 151, 17)
$BtnCrd = GUICtrlCreateInput("756, 534", 160, 40, 49, 21)
$Label3 = GUICtrlCreateLabel("Цвет:", 216, 40, 32, 17)
$BtnClr = GUICtrlCreateInput("0x5CB6D4", 248, 40, 49, 21)
$Label4 = GUICtrlCreateLabel("Левая верхняя координта:", 8, 72, 139, 17)
$LT = GUICtrlCreateInput("582, 159", 160, 72, 49, 21)
$Label5 = GUICtrlCreateLabel("Правая нижняя координата:", 8, 104, 148, 17)
$RL = GUICtrlCreateInput("1213, 955", 160, 104, 49, 21)
$Label6 = GUICtrlCreateLabel("^Цвет лайка^", 216, 104, 74, 17)
$LkClr = GUICtrlCreateInput("0xC9D8E6", 224, 72, 73, 21)
$Start = GUICtrlCreateButton("Start", 8, 128, 289, 25)
GUICtrlSetOnEvent(-1, 'Start')
GUICtrlSetFont(-1, 16, 400, 0, "Times New Roman")
GUICtrlSetColor(-1, 0x000000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

	EndSwitch
WEnd

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

	EndSwitch
WEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Func _Start()
Мало работаю с AutoIt,как можно заполнить переменные через InputBox'ы,как в коде?Как можно привинтить к кнопочке Start функцию _Start?
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Gzzk
Код:
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Start
            _Start()
    EndSwitch
WEnd
 
Автор
G

Gzzk

Новичок
Сообщения
104
Репутация
1
А переменные как правильно заполнить?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Код:
$Start = GUICtrlCreateButton("Start", 10, 30, 100)
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Если вдруг я правильно вопрос понял, то вот
Код:
Global $aClsCrd, $aBtnCrd , $BtnClr , $aLT , $aRL , $LkClr
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ###
$Form1_1 = GUICreate("Form1", 301, 158, 189, 112)
$Label1 = GUICtrlCreateLabel("Красный крестик второй вкладки(закрыть):", 8, 8, 228, 17)
$ClsCrd = GUICtrlCreateInput("384, 14", 240, 8, 57, 21)
$Label2 = GUICtrlCreateLabel("Координаты голубой кнопки:", 8, 40, 151, 17)
$BtnCrd = GUICtrlCreateInput("756, 534", 160, 40, 49, 21)
$Label3 = GUICtrlCreateLabel("Цвет:", 216, 40, 32, 17)
$BtnClr = GUICtrlCreateInput("0x5CB6D4", 248, 40, 49, 21)
$Label4 = GUICtrlCreateLabel("Левая верхняя координта:", 8, 72, 139, 17)
$LT = GUICtrlCreateInput("582, 159", 160, 72, 49, 21)
$Label5 = GUICtrlCreateLabel("Правая нижняя координата:", 8, 104, 148, 17)
$RL = GUICtrlCreateInput("1213, 955", 160, 104, 49, 21)
$Label6 = GUICtrlCreateLabel("^Цвет лайка^", 216, 104, 74, 17)
$LkClr = GUICtrlCreateInput("0xC9D8E6", 224, 72, 73, 21)
$Start = GUICtrlCreateButton("Start", 8, 128, 289, 25)
GUICtrlSetOnEvent(-1, 'Start')
GUICtrlSetFont(-1, 16, 400, 0, "Times New Roman")
GUICtrlSetColor(-1, 0x000000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

    EndSwitch
WEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func _Start()
   $var1 = GUICtrlRead($ClsCrd)
   $var2 = GUICtrlRead($BtnClr)
   $var3 = GUICtrlRead($LT)
   $var4 = GUICtrlRead($RL)
   $var5 = GUICtrlRead($LkClr)
   MsgBox(0, "Переменные", $var1&@CRLF&$var2&@CRLF&$var3&@CRLF&$var4&@CRLF&$var5)
EndFunc
 
Автор
G

Gzzk

Новичок
Сообщения
104
Репутация
1
Код:
Global $aClsCrd, $aBtnCrd , $BtnClr , $aLT , $aRL , $LkClr
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ###
$Form1_1 = GUICreate("Form1", 301, 158, 189, 112)
$Label1 = GUICtrlCreateLabel("Красный крестик второй вкладки(закрыть):", 8, 8, 228, 17)
$ClsCrd = GUICtrlCreateInput("384, 14", 240, 8, 57, 21)
$Label2 = GUICtrlCreateLabel("Координаты голубой кнопки:", 8, 40, 151, 17)
$BtnCrd = GUICtrlCreateInput("756, 534", 160, 40, 49, 21)
$Label3 = GUICtrlCreateLabel("Цвет:", 216, 40, 32, 17)
$BtnClr = GUICtrlCreateInput("0x5CB6D4", 248, 40, 49, 21)
$Label4 = GUICtrlCreateLabel("Левая верхняя координта:", 8, 72, 139, 17)
$LT = GUICtrlCreateInput("582, 159", 160, 72, 49, 21)
$Label5 = GUICtrlCreateLabel("Правая нижняя координата:", 8, 104, 148, 17)
$RL = GUICtrlCreateInput("1213, 955", 160, 104, 49, 21)
$Label6 = GUICtrlCreateLabel("^Цвет лайка^", 216, 104, 74, 17)
$LkClr = GUICtrlCreateInput("0xC9D8E6", 224, 72, 73, 21)
$Start = GUICtrlCreateButton("Start", 8, 128, 289, 25)
GUICtrlSetOnEvent(-1, '_Start')
GUICtrlSetFont(-1, 16, 400, 0, "Times New Roman")
GUICtrlSetColor(-1, 0x000000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

    EndSwitch
WEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func _Start()
   $aClsCrd = GUICtrlRead($ClsCrd)
   $BtnCrd = GUICtrlRead($BtnCrd)
   $BtnClr = GUICtrlRead($BtnClr)
   $aLT = GUICtrlRead($LT)
   $aRL = GUICtrlRead($RL)
   $LkClr = GUICtrlRead($LkClr)	
HotKeySet('^g', '_Quit')
Sleep(3000)
$i = 0
$Count = 0
$Error= 0
While $i <= 10000
	Sleep(25)
	if PixelGetColor($BtnCrd[0],$BtnCrd[1])=$BtnClr then
		MouseClick("left",$BtnCrd[0],$BtnCrd[1])
		like()
	EndIf
WEnd
EndFunc
Код:
C:\Documents and Settings\???????2\Desktop\??????? ???????\oliker.au3 (53) : ==> Subscript used with non-Array variable.:
Это ведь массив.Почему такая ошибка?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Потому что там написано что ты пытаешься обратиться как к массиву, к переменной, массивом не являющейся.
 
Автор
G

Gzzk

Новичок
Сообщения
104
Репутация
1
Но я ведь в коде объявил её,как массив...Может я кривой?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Строку хоть покажи. Номер строки мне не о чем не говорит, форум номера строк не отображает а у меня не стоит SciTe
 
Автор
G

Gzzk

Новичок
Сообщения
104
Репутация
1
Код:
if PixelGetColor($BtnCrd[0],$BtnCrd[1])=$BtnClr then
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Gzzk,
Примерно так сделайте для всех элементов Input, в которых две координаты, тогда это будет нормальный массив.
Код:
#include <Array.au3>

;$sTmp = GUICtrlRead($nID)
$sTmp = '384, 14'
$aTmp = StringRegExp($sTmp, '\b(\d+)\b', 3)
If UBound($aTmp) <> 2 Then Exit 13
_ArrayDisplay($aTmp)
 
Автор
G

Gzzk

Новичок
Сообщения
104
Репутация
1
Код:
Global $aClsCrd, $aBtnCrd , $BtnClr , $LT , $RL , $LkClr
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#Region ### START Koda GUI section ###
$Form1_1 = GUICreate("Form1", 301, 158, 189, 112)
$Label1 = GUICtrlCreateLabel("Красный крестик второй вкладки(закрыть):", 8, 8, 228, 17)
$ClsCrd = GUICtrlCreateInput("384, 14", 240, 8, 57, 21)
$Label2 = GUICtrlCreateLabel("Координаты голубой кнопки:", 8, 40, 151, 17)
$BtnCrd = GUICtrlCreateInput("756, 534", 160, 40, 49, 21)
$Label3 = GUICtrlCreateLabel("Цвет:", 216, 40, 32, 17)
$BtnClr = GUICtrlCreateInput("0x5CB6D4", 248, 40, 49, 21)
$Label4 = GUICtrlCreateLabel("Левая верхняя координта:", 8, 72, 139, 17)
$LT = GUICtrlCreateInput("582, 159", 160, 72, 49, 21)
$Label5 = GUICtrlCreateLabel("Правая нижняя координата:", 8, 104, 148, 17)
$RL = GUICtrlCreateInput("1213, 955", 160, 104, 49, 21)
$Label6 = GUICtrlCreateLabel("^Цвет лайка^", 216, 104, 74, 17)
$LkClr = GUICtrlCreateInput("0xC9D8E6", 224, 72, 73, 21)
$Start = GUICtrlCreateButton("Start", 8, 128, 289, 25)
GUICtrlSetOnEvent(-1, '_Start')
GUICtrlSetFont(-1, 16, 400, 0, "Times New Roman")
GUICtrlSetColor(-1, 0x000000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

    EndSwitch
WEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func _Start()

;$sTmp = GUICtrlRead($nID)

   $sClsCrd = GUICtrlRead($ClsCrd)
   $sBtnCrd = GUICtrlRead($BtnCrd)
   $sBtnClr = GUICtrlRead($BtnClr)
   $sLT = GUICtrlRead($LT)
   $sRL = GUICtrlRead($RL)
   $sLkClr = GUICtrlRead($LkClr) 
$aClsCrd = StringRegExp($sClsCrd, '\b(\d+)\b', 3)
If UBound($aClsCrd) <> 2 Then Exit 13
_ArrayDisplay($aClsCrd)
$aBtnCrd = StringRegExp($sBtnCrd, '\b(\d+)\b', 3)
If UBound($aBtnCrd) <> 2 Then Exit 13
_ArrayDisplay($aBtnCrd)
$aLT = StringRegExp($sLT '\b(\d+)\b', 3)
If UBound($aLT) <> 2 Then Exit 13
_ArrayDisplay($aLT)
$aRL = StringRegExp($sRL '\b(\d+)\b', 3)
If UBound($aRL) <> 2 Then Exit 13
_ArrayDisplay($aRL)
Сделал вроде бы всё правильно,но,видимо,это всё моя карма.С $aRL тоже самое.
Код:
C:\Documents and Settings\???????2\Desktop\??????? ???????\oliker.au3 (56) : ==> Error in expression.:
$aLT = StringRegExp($sLT '\b(\d+)\b', 3)
$aLT = StringRegExp(^ ERROR
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Gzzk [?]
Сделал вроде бы всё правильно,но,видимо,это всё моя карма.С $aRL тоже самое.
...StringRegExp($sLT, (здесь пропущена запятая) '\b(\d+)\b',...
и ниже тоже.
 
Автор
G

Gzzk

Новичок
Сообщения
104
Репутация
1
Код:
Func _Start()
;$sTmp = GUICtrlRead($nID)
	$aCoord ='0,0'
   $sClsCrd = GUICtrlRead($ClsCrd)
   $sBtnCrd = GUICtrlRead($BtnCrd)
   $sBtnClr = GUICtrlRead($BtnClr)
   $sLT = GUICtrlRead($LT)
   $sRL = GUICtrlRead($RL)
   $sLkClr = GUICtrlRead($LkClr) 
$aClsCrd = StringRegExp($sClsCrd, '\b(\d+)\b', 3)
If UBound($aClsCrd) <> 2 Then Exit 13
$aBtnCrd = StringRegExp($sBtnCrd, '\b(\d+)\b', 3)
If UBound($aBtnCrd) <> 2 Then Exit 13
	_ArrayDisplay($aBtnCrd)
$aLT = StringRegExp($sLT,'\b(\d+)\b', 3)
If UBound($aLT) <> 2 Then Exit 13
$aRL = StringRegExp($sRL,'\b(\d+)\b', 3)
If UBound($aRL) <> 2 Then Exit 13

HotKeySet('^g', '_Quit')
Sleep(3000)
$i = 0
$Count = 0
$Error= 0
While $i <= 10000
    Sleep(25)
    if PixelGetColor(645, 536)=$sBtnClr then
        MouseClick("left",645,536)
        like()
    EndIf
WEnd
EndFunc
Func _Quit()
    MsgBox(64, 'Отчет', 'Открыто страниц: ' & $i & @CR & 'Поставлено лайков: ' & $Count & @CR & 'Страницы,где лайки не были поставлены:' & $Error)
    Exit
EndFunc   ;==>_Quit
Func like()
	$q = 0
While 1
		Sleep(500) 
		$aCoord = PixelSearch($aLT[0],$aLT[1] ,$aRL[0], $aRL[1], 0xC9D8E6)

Код:
C:\Documents and Settings\???????2\Desktop\??????? ???????\oliker.au3 (83) : ==> Variable used without being declared.:
$aCoord = PixelSearch($aLT[0],$aLT[1] ,$aRL[0], $aRL[1], 0xC9D8E6)
$aCoord = PixelSearch(^ ERROR
Ничего не понимаю,вроде всё правильно указал.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Gzzk,
Объявите все Ваши переменные, которые используются в разных функциях как Global в начале скрипта.
Код:
Global $aLT, $aRL;и т.д.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Я закрою тему если ты еще раз задашь тупой вопрос при этом не выложишь абсолютно весь код своей программы
 
Верх