Что нового

Пауза части кода в функций

Ksaan

Знающий
Сообщения
207
Репутация
15
То есть есть вот такой скрипт
Код:
#include <MouseOnEvent.au3>
Global $Paused = True
_MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "Pause")
_MouseSetOnEvent($MOUSE_PRIMARYUP_EVENT, "Pause")
HotKeySet('{DELETE}', '_Exit')
While 1
 If Not $Paused Then
 Send("з")
 $pos = MouseGetPos()
MouseMove($pos[0],$pos[1] + 1,20 )

 Sleep(10)
 Else
 Sleep(10)
EndIf
WEnd
Func Pause()
 $Paused = Not $Paused
 $pos = MouseGetPos()
MouseMove($pos[0] + 14,$pos[1] + 55,0 )
EndFunc
Func _Exit()
 Exit
EndFunc

Как сделать чтобы при нажатий клавиши (пример {F1}) часть кода
Код:
$pos = MouseGetPos()
MouseMove($pos[0] + 14,$pos[1] + 55,0 )

Поставилась на временную паузу секунд на 5.
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
Думаю, что в этом поможет функция _IsPressed, ее описание есть в стандартном хелпфайле
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
$flag = 0
HotKeySet('^{F1}','_pause')
While 1
	ConsoleWrite('Работаю' & @CRLF)
	If $flag = 1 Then
		While 1
			ConsoleWrite('Пауза' & @CRLF)
			If $flag = 0 Then ExitLoop
			Sleep(50)
		WEnd
	EndIf
	Sleep(50)
WEnd

Func _pause()
Switch $flag
	Case 0
		$flag = 1
	Case 1
		$flag = 0
EndSwitch
EndFunc


нажимать Ctrl + F1
 

beliy

Продвинутый
Сообщения
372
Репутация
72
Можно и без case, да и выходить с бесконечного цикла как-то надо:

Код:
$flag = false
HotKeySet('^{F1}','_pause') ; пауза (Ctrl + F1)
HotKeySet('^{F2}','_exit') ; выход (Ctrl + F2)
While 1
   ConsoleWrite('Работаю' & @CRLF)
   If $flag Then
	  While 1
		 ConsoleWrite('Пауза' & @CRLF)
		 If Not $flag Then ExitLoop
		 Sleep(50)
	  WEnd
   EndIf
   Sleep(50)
WEnd

Func _pause()
   $flag = Not $flag
EndFunc

Func _exit()
   Exit
EndFunc





Добавлено:
Сообщение автоматически объединено:

Как сделать чтобы при нажатий клавиши (пример {F1}) часть кода
Код: AutoIt [Выделить]
$pos = MouseGetPos()
MouseMove($pos[0] + 14,$pos[1] + 55,0 )

Поставилась на временную паузу секунд на 5.

не совсем понятно где эта часть должна выполняться, т.к. ваша функция pause нигде не вызывается, но примерно так
Код:
$flag = false
HotKeySet('^{F1}','_pause') ; пауза (Ctrl + F1)
HotKeySet('^{F2}','_exit') ; выход (Ctrl + F2)

While 1
   _youFunc()
WEnd

Func _youFunc()
   If $flag Then Sleep(5000) ; пауза 5 сек.
   $pos = MouseGetPos()
   MouseMove($pos[0] + 14,$pos[1] + 55,0 ) 
EndFunc

Func _pause()
   $flag = Not $flag
EndFunc

Func _exit()
   Exit
EndFunc
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
beliy
в моем примере одно сочетание горячих клавиш. и ставит на паузу и запускает опять. я привел пример, как можно сделать. все остальные доработки за ТС. у меня не было цели показать как это будет в его функции. можно ведь и подумать самому :smile:. это очень полезно для личного изучения
 
Верх