Что нового

[Автоматизация] Остановка скрипта после запуска и продолжение выполнения нажатием гор. клавишей

CaHbka

Новичок
Сообщения
20
Репутация
0
Версия AutoIt: 3.3.6.1

Описание: Хотелось бы что бы после запуска скрипта, он становился на паузу и через какое то время, после нажатия горячей клавиши, скрипт продолжал работу.

Примечания: что то вроде
Код:
Run (путь до .exe)
Sleep ( 500 )
;скрипт останавливается на паузу
;проходит какое-то время
;я нажимаю на гор. клавишу(к примеру F10) и скрипт продолжает выполняться
Sleep ( 500 )
WinActivate (имя окна)
Sleep ( 1000 )
Send ("{ENTER}")

Гуглил и юзал поиск по форуму, но ничего подходящего не нашел
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
Код:
Global $bPaused = True

Run(путь до .exe)
Sleep(500)

;Задаём клавишу F10
HotKeySet("{F10}", "_ContinueScript")

;скрипт останавливается на паузу
While $bPaused
	Sleep(10)
WEnd

;скрипт продолжает выполняться
Sleep(500)
WinActivate(имя окна)
Sleep(1000)
Send("{ENTER}")

Func _ContinueScript()
	$bPaused = False
EndFunc
 
Автор
C

CaHbka

Новичок
Сообщения
20
Репутация
0
Оперативно :smile: Спасибо большое :smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
CaHbka
Можно еще так попробовать
Код:
$sTitle = 'Безымянный - Блокнот'
$iPause = 5 ;секунд первая пауза
$fWork = False
$sPath = @SystemDir & '\notepad.exe'
$iCount = 0

HotKeySet('+{Esc}', '_Exit')
HotKeySet('{F10}', '_Pause')
HotKeySet('{F11}', '_MySend')
Run($sPath)
$iStart = TimerInit()
While TimerDiff($iStart) <= $iPause * 1000
	Sleep(50)
	ToolTip('До начала работы осталось ' & Round($iPause - TimerDiff($iStart) / 1000) & ' сек.', 0, 0)
WEnd

While 1
	If $fWork Then
		ToolTip('Работаем.' & @LF & 'Пауза F10, выход Shift+Esc, Send(''{ENTER}'') F11', 0, 0)
	Else
		ToolTip('Пауза в работе.' & @LF & 'Начать работать F10, выход Shift+Esc', 0, 0)
	EndIf
	Sleep(50)
WEnd

Func _MySend()
	Local $hWin
	If $fWork Then
		If WinExists($sTitle) Then
			WinActivate($sTitle)
			$hWin = WinWaitActive($sTitle, '', 1)
			If $hWin Then
				$iCount += 1
				Send('Нажали ENTER ' & $iCount & ' раз(а)')
				Send('{ENTER}')
			EndIf
		Else
			ToolTip('Нет окна ' & $sTitle, 0, 0)
			Sleep(3000)
			Exit
		EndIf
	EndIf
EndFunc   ;==>_MySend

Func _Exit()
	Exit
EndFunc   ;==>_Exit

Func _Pause()
	$fWork = Not $fWork
EndFunc   ;==>_Pause
 
Автор
C

CaHbka

Новичок
Сообщения
20
Репутация
0
madmasles
Спасибо и за такой вариант решения, но ваш скрипт труден для моего восприятия(плохо еще разбираюсь в AutoIt)
 
Верх