Что нового

Циклирование скрипта

obeyme

Новичок
Сообщения
71
Репутация
0
Как можно зациклить скрипт? Т.е он будет выполнять действие пока пользователь не нажмет, например, F11 и тогда скрипт закроется
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Код:
While ... WEnd
Do ... Until
 
Автор
O

obeyme

Новичок
Сообщения
71
Репутация
0
А можно с примером? Просто я новичок в Autoit. Вот мне нужен цикл для флудера. Т.е. нажимаешь F10 он флудит пока не нажмешь F11, например.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
obeyme [?]
А можно с примером?
Можно.
1.
Код:
Global $fWork, $iCount

HotKeySet('{F10}', '_Work_or_No')
HotKeySet('{F11}', '_Exit')
AdlibRegister('_My_Func', 1000)

While 1
	Sleep(100)
WEnd

Func _Work_or_No()
	$fWork = Not $fWork
	If Not $fWork Then $iCount = 0
EndFunc   ;==>_Work_or_No

Func _Exit()
	Exit
EndFunc   ;==>_Exit

Func _My_Func()
	If Not $fWork Then Return
	$iCount += 1
	ConsoleWrite($iCount & ' --> что-то делаем.' & @LF)
EndFunc   ;==>_My_Func

2.
Код:
Global $fWork, $iCount, $iStart

HotKeySet('{F10}', '_Work_or_No')
HotKeySet('{F11}', '_Exit')

$iStart = TimerInit()
While 1
	If TimerDiff($iStart) > 1000 Then
		_My_Func()
		$iStart = TimerInit()
	EndIf
	Sleep(100)
WEnd

Func _Work_or_No()
	$fWork = Not $fWork
	If Not $fWork Then $iCount = 0
EndFunc   ;==>_Work_or_No

Func _Exit()
	Exit
EndFunc   ;==>_Exit

Func _My_Func()
	If Not $fWork Then Return
	$iCount += 1
	ConsoleWrite($iCount & ' --> что-то делаем.' & @LF)
EndFunc   ;==>_My_Func

3.
Код:
Global $fWork, $iCount, $iStart, $fExit

HotKeySet('{F10}', '_Work_or_No')
HotKeySet('{F11}', '_Exit')

$iStart = TimerInit()
;While Not $fExit
Do
	If TimerDiff($iStart) > 1000 Then
		_My_Func()
		$iStart = TimerInit()
	EndIf
	Sleep(100)
Until $fExit
;WEnd
ConsoleWrite('exit' & @LF)

Func _Work_or_No()
	$fWork = Not $fWork
	If Not $fWork Then $iCount = 0
EndFunc   ;==>_Work_or_No

Func _Exit()
	$fExit = True
EndFunc   ;==>_Exit

Func _My_Func()
	If Not $fWork Then Return
	$iCount += 1
	ConsoleWrite($iCount & ' --> что-то делаем.' & @LF)
EndFunc   ;==>_My_Func
 
Автор
O

obeyme

Новичок
Сообщения
71
Репутация
0
Не могу разобраться :( что то по легче можно? Вот мой код:
Код:
MsgBox ( 64, 'Флудер', 'Нажми F10 чтобы начать флуд и F11 чтобы выйти из флудера')
HotKeySet('{F10}', 'Msg')
HotKeySet('{F11}', 'ext')
$text = InputBox('Флудер', 'Введите текст')
While 1
   Sleep(100)
Wend

Func ext()
   Exit
EndFunc

Func Msg()
   Send($text)
   Send('{enter}')
EndFunc
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Вот, по твоему коду:
Код:
Global $var = 0

MsgBox ( 64, 'Флудер', 'Нажми F10 чтобы начать флуд и F11 чтобы выйти из флудера')

HotKeySet('{F10}', 'Msg')
HotKeySet('{F11}', 'ext')

$text = InputBox('Флудер', 'Введите текст')

While 1
   Sleep(100)
Wend

Func ext()
   $var = 1
EndFunc

Func Msg()
	Do
		Send($text)
		Send('{enter}')
	Until $var = 1
	Exit
EndFunc
 
Автор
O

obeyme

Новичок
Сообщения
71
Репутация
0
Zaramot, благодарю, плюсик твой. Вот что в итоге получилось:
Код:
MsgBox ( 64, 'Флудер', 'Нажми F10 чтобы начать флуд и F11 чтобы выйти из флудера')
HotKeySet('{F10}', 'Msg')
HotKeySet('{F11}', 'ext')
$c = 0
$text = InputBox('Флудер', 'Введите текст')
While 1
   Sleep(100)
Wend

Func ext()
   Exit
EndFunc

Func Msg()
    Do
        Send($text)
        Send('{enter}')
    Until $c = 1
EndFunc
 
Верх