ahjkcfout7
Знающий
- Сообщения
- 26
- Репутация
- 6
Доброго времени суток. Решил сократить количество строк в коде путем цикла.
основной цикл имел вот такой вид
после внедрения цикла код стал такого вида
Как бы все работает. Но я заметил то, что скрипт работает без завершения цикла For $ii = GUICtrlRead($edit_number) To 21. Если $ii=21, то цикл проработает как нужно, но почему то цикл на этом не завершится и переменная ii сбросится на значение GUICtrlRead($edit_number). И цикл так работает постоянно. Я думал о том, что возможно кнопка $auto нажалась дважды, но нет. Да знаю, можно добавить в конце строку if $ii=21 then exitloop. Но меня волнует то, правильно ли я ввел select ...case... endselect в цикл. Может этого не следует делать? Или есть какой то другой метод?
основной цикл имел вот такой вид
Код:
While True
Global $msg = GUIGetMsg()
Select
Case $msg = -3
Exit
Case $msg = $auto
For $ii = GUICtrlRead($edit_number) To 21
Sleep(1000)
ClipPut(GUICtrlRead(Eval("acc" & $ii)))
GUICtrlSetBkColor(Eval("acc" & $ii), 0xCCFFCC)
voting()
Sleep(5000)
Next
Case $msg = $acc1
GUICtrlSetBkColor($acc1, 0xCCFFCC)
ClipPut(GUICtrlRead($acc1))
;~ WinActivate('[CLASS:MozillaWindowClass]')
voting()
Case $msg = $acc2
GUICtrlSetBkColor($acc2, 0xCCFFCC)
ClipPut(GUICtrlRead($acc2))
voting()
Case $msg = $acc3
GUICtrlSetBkColor($acc3, 0xCCFFCC)
ClipPut(GUICtrlRead($acc3))
voting()
Case $msg = $acc4
GUICtrlSetBkColor($acc4, 0xCCFFCC)
ClipPut(GUICtrlRead($acc4))
voting()
Case $msg = $acc5
GUICtrlSetBkColor($acc5, 0xCCFFCC)
ClipPut(GUICtrlRead($acc5))
voting()
Case $msg = $acc6
GUICtrlSetBkColor($acc6, 0xCCFFCC)
ClipPut(GUICtrlRead($acc6))
voting()
Case $msg = $acc7
GUICtrlSetBkColor($acc7, 0xCCFFCC)
ClipPut(GUICtrlRead($acc7))
Case $msg = $acc8
GUICtrlSetBkColor($acc8, 0xCCFFCC)
ClipPut(GUICtrlRead($acc8))
Case $msg = $acc9
GUICtrlSetBkColor($acc9, 0xCCFFCC)
ClipPut(GUICtrlRead($acc9))
Case $msg = $acc10
GUICtrlSetBkColor($acc10, 0xCCFFCC)
ClipPut(GUICtrlRead($acc10))
Case $msg = $acc11
GUICtrlSetBkColor($acc11, 0xCCFFCC)
ClipPut(GUICtrlRead($acc11))
Case $msg = $acc12
GUICtrlSetBkColor($acc12, 0xCCFFCC)
ClipPut(GUICtrlRead($acc12))
Case $msg = $acc13
GUICtrlSetBkColor($acc13, 0xCCFFCC)
ClipPut(GUICtrlRead($acc13))
Case $msg = $acc14
GUICtrlSetBkColor($acc14, 0xCCFFCC)
ClipPut(GUICtrlRead($acc14))
Case $msg = $acc15
GUICtrlSetBkColor($acc15, 0xCCFFCC)
ClipPut(GUICtrlRead($acc15))
Case $msg = $acc16
GUICtrlSetBkColor($acc16, 0xCCFFCC)
ClipPut(GUICtrlRead($acc16))
Case $msg = $acc17
GUICtrlSetBkColor($acc17, 0xCCFFCC)
ClipPut(GUICtrlRead($acc17))
Case $msg = $acc18
GUICtrlSetBkColor($acc18, 0xCCFFCC)
ClipPut(GUICtrlRead($acc18))
Case $msg = $acc19
GUICtrlSetBkColor($acc19, 0xCCFFCC)
ClipPut(GUICtrlRead($acc19))
Case $msg = $acc20
GUICtrlSetBkColor($acc20, 0xCCFFCC)
ClipPut(GUICtrlRead($acc20))
Case $msg = $acc21
GUICtrlSetBkColor($acc21, 0xCCFFCC)
ClipPut(GUICtrlRead($acc21))
Case $msg = $nik1
GUICtrlSetBkColor($nik1, 0xCCFFCC)
ClipPut(GUICtrlRead($nik1))
Case $msg = $nik2
GUICtrlSetBkColor($nik2, 0xCCFFCC)
ClipPut(GUICtrlRead($nik2))
Case $msg = $nik3
GUICtrlSetBkColor($nik3, 0xCCFFCC)
ClipPut(GUICtrlRead($nik3))
Case $msg = $nik4
GUICtrlSetBkColor($nik4, 0xCCFFCC)
ClipPut(GUICtrlRead($nik4))
Case $msg = $nik5
GUICtrlSetBkColor($nik5, 0xCCFFCC)
ClipPut(GUICtrlRead($nik5))
Case $msg = $nik6
GUICtrlSetBkColor($nik6, 0xCCFFCC)
ClipPut(GUICtrlRead($nik6))
Case $msg = $nik7
GUICtrlSetBkColor($nik7, 0xCCFFCC)
ClipPut(GUICtrlRead($nik7))
Case $msg = $nik8
GUICtrlSetBkColor($nik8, 0xCCFFCC)
ClipPut(GUICtrlRead($nik8))
Case $msg = $nik9
GUICtrlSetBkColor($nik9, 0xCCFFCC)
ClipPut(GUICtrlRead($nik9))
Case $msg = $nik10
GUICtrlSetBkColor($nik10, 0xCCFFCC)
ClipPut(GUICtrlRead($nik10))
Case $msg = $nik11
GUICtrlSetBkColor($nik11, 0xCCFFCC)
ClipPut(GUICtrlRead($nik11))
Case $msg = $nik12
GUICtrlSetBkColor($nik12, 0xCCFFCC)
ClipPut(GUICtrlRead($nik12))
Case $msg = $nik13
GUICtrlSetBkColor($nik13, 0xCCFFCC)
ClipPut(GUICtrlRead($nik13))
Case $msg = $nik14
GUICtrlSetBkColor($nik14, 0xCCFFCC)
ClipPut(GUICtrlRead($nik14))
Case $msg = $nik15
GUICtrlSetBkColor($nik15, 0xCCFFCC)
ClipPut(GUICtrlRead($nik15))
Case $msg = $nik16
GUICtrlSetBkColor($nik16, 0xCCFFCC)
ClipPut(GUICtrlRead($nik16))
Case $msg = $nik17
GUICtrlSetBkColor($nik17, 0xCCFFCC)
ClipPut(GUICtrlRead($nik17))
Case $msg = $nik18
GUICtrlSetBkColor($nik18, 0xCCFFCC)
ClipPut(GUICtrlRead($nik18))
Case $msg = $nik19
GUICtrlSetBkColor($nik19, 0xCCFFCC)
ClipPut(GUICtrlRead($nik19))
Case $msg = $nik20
GUICtrlSetBkColor($nik20, 0xCCFFCC)
ClipPut(GUICtrlRead($nik20))
Case $msg = $nik21
GUICtrlSetBkColor($nik21, 0xCCFFCC)
ClipPut(GUICtrlRead($nik21))
Case $msg = $reset
reset()
EndSelect
Sleep(10)
WEnd
после внедрения цикла код стал такого вида
Код:
While True
Global $msg = GUIGetMsg()
For $zz = 1 To UBound($nicks) - 1
Select
Case $msg = -3
Exit
Case $msg = Eval("acc" & $zz)
GUICtrlSetBkColor(Eval("acc" & $zz, 0xCCFFCC))
;~ ClipPut(GUICtrlRead(Eval("acc" & $zz)))
voting()
Case $msg = Eval("nik" & $zz)
GUICtrlSetBkColor(Eval("nik" & $zz), 0xCCFFCC)
ClipPut(GUICtrlRead(Eval("nik" & $zz)))
Case $msg = $auto
;~ Sleep(2*60*60*1000) ; время отложки скрипта
For $ii = GUICtrlRead($edit_number) To 21
ConsoleWrite($ii&@CRLF)
Sleep(1000)
;~ ClipPut(GUICtrlRead(Eval("acc" & $ii)))
GUICtrlSetBkColor(Eval("acc" & $ii), 0xCCFFCC)
voting()
;~ _mac_adrdress_changer()
Sleep(10000)
If StringCompare(GUICtrlRead(Eval('acc' & $ii)), $ii & " already voted") > 0 Then Sleep(Random(8 * 60 * 1000, 11 * 60 * 1000))
Next
Case $msg = $reset
reset()
EndSelect
Next
Sleep(10)
WEnd
Как бы все работает. Но я заметил то, что скрипт работает без завершения цикла For $ii = GUICtrlRead($edit_number) To 21. Если $ii=21, то цикл проработает как нужно, но почему то цикл на этом не завершится и переменная ii сбросится на значение GUICtrlRead($edit_number). И цикл так работает постоянно. Я думал о том, что возможно кнопка $auto нажалась дважды, но нет. Да знаю, можно добавить в конце строку if $ii=21 then exitloop. Но меня волнует то, правильно ли я ввел select ...case... endselect в цикл. Может этого не следует делать? Или есть какой то другой метод?