Что нового

[Время, дата] Как можно закрыть программу через заданный промежуток времени?

Teacher

Новичок
Сообщения
33
Репутация
0
Например есть программа написанная на AutoIT естественно. :IL_AutoIt_1: После ее запуска - она начинает свою работу, но мне необходимо чтобы например через 5 минут она сама выключалась. Как это можно реализовать? :(
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Вам лень почитать справку?
Код:
$answer = InputBox("Ввод времени работы", "Введите время в секундах", 3)
$hTimer = TimerInit() ; Запускает таймер и хранит дескриптор в переменной
While 1
	$iDiff = Round(TimerDiff($hTimer)/1000) ; Возвращает разницу во времени, от предыдущего запуска TimerInit, дескриптор которого указан в переменной
	If $answer <= $iDiff Then
		MsgBox(0, "Разница во времени", $iDiff & " сек.")
		Exit
	EndIf
	Sleep(1000)
WEnd
 
Автор
T

Teacher

Новичок
Сообщения
33
Репутация
0
Посмотрел справку и то что Вы скинули. Боюсь это не то что нужно. Мне необходимо что то типа "Работать 5 минут" и все.
Мне не нужно вводить информацию в окна. Просто сделать так чтобы программа работала например 5 минут, а потом отключалась.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Teacher,
предоставленный Вам код содержит полные ответы на Ваши вопросы:
1) программа определяет разницу во времени от точки старта;
2) программа прекращает работать при превышении лимита времени.

Если Вам лень разбираться КАК это сделано и Вы хотите получить готовый код, то напишите в стол заказов.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Teacher [?]
чтобы программа работала например 5 минут, а потом отключалась
Код:
; добавить в начало скрипта
AdlibRegister("CheckTime", 5000)
Global $StartTime = TimerInit()

; тут ваш скрипт -------
While Sleep(1000)
WEnd
; ----------------------

; добавить в конец скрипта
Func CheckTime()
  If TimerDiff($StartTime) > 1000 * 60 * 5 Then Exit
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
InnI,
А зачем каждые 5 сек. проверять время? ИМХО, можно сразу
Код:
AdlibRegister('_Exit', 1000 * 60 * 5)
;...
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
madmasles [?]
Согласен :beer: В плане поставленной задачи так даже лучше (и проще).

Teacher
Код:
; добавить в начало скрипта ---------
AdlibRegister('_Exit', 1000 * 60 * 5)
Func _Exit()
  Exit
EndFunc
; -----------------------------------

; дальше весь скрипт ----------------
While Sleep(1000)
WEnd
 
Верх