Что нового

Автоматизация завершение работы скрипта

Alex58reg

Новичок
Сообщения
41
Репутация
0
всем доброго времени суток
ребята есть мысль но не могу реализовать ее нужна помощь
может кто нибудь привести пример кода
нужно так запуск скрипта с таймером к примеру 10 мин обратного отсчета по истечению таймера скрипт должен прекратить работу но не должен вновь запускаться так как 10 мин уже использовались то есть прописал 1 час или сутки не важно но после этого времени чтобы скрипт был более не работоспособен до того момента пока снова не пропишут время его работы
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Во-первых, где запятые?! :scratch:

Во-вторых...
* Нужно ли отображать отсчёт таймера?
* Кто и где будет прописывать время работы?
 
Автор
A

Alex58reg

Новичок
Сообщения
41
Репутация
0
Во-первых, где запятые?! :scratch:

Во-вторых...
* Нужно ли отображать отсчёт таймера?
* Кто и где будет прописывать время работы?
прошу прощения за запятые
таймер отображать не нужно
время будет прописываться в исходнике владельцем и компилироваться за ново
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
как вариант
записывает также неполное время работы программы. при повторном запуске программа дорабатывает остаток времени
Код:
Global $iNameProg = 'New_Prog_Ver.123_NT-456';внутреннее имя программы
Global $iTime = 10000;10 сек
Global $iTimeDiff
Local $sVer = RegRead('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer')
If Not @error Then
    If Number($sVer) >= $iTime Then
        MsgBox(64, '', 'Время работы программы исчерпано')
        Exit
    Else
        $iTimeDiff = Number($sVer)
    EndIf
Else
    $iTimeDiff = $iTime
EndIf
Global $Form1 = GUICreate('Form1', 442, 90, 389, 210)
Global $Label1 = GUICtrlCreateLabel('Label1', 64, 32, 276, 17)
GUISetState()
Global $startTimer = TimerInit()
AdlibRegister('_TimerVer')
Local $iDiff
While 1
    $iDiff = $iTimeDiff - Ceiling(TimerDiff($startTimer))
    If $iDiff <= 0 Then
        GUICtrlSetData($Label1, 0)
    Else
        GUICtrlSetData($Label1, $iDiff)
    EndIf
    Switch GUIGetMsg()
        Case -3
            RegWrite('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer', 'REG_SZ', $iDiff)
            Exit

    EndSwitch
WEnd

Func _TimerVer()
    If Ceiling(TimerDiff($startTimer)) >= $iTimeDiff Then
        RegWrite('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer', 'REG_SZ', $iTime)
        MsgBox(64, '', 'Время работы программы истекло', 0, $Form1)
        Exit
    EndIf
EndFunc   ;==>_TimerVer
 
Последнее редактирование:
Автор
A

Alex58reg

Новичок
Сообщения
41
Репутация
0
как вариант
записывает также неполное время работы программы. при повторном запуске программа дорабатывает остаток времени
Код:
Global $iNameProg = 'New_Prog_Ver.123_NT-456';внутреннее имя программы
Global $iTime = 10000;10 сек
Global $iTimeDiff
Local $sVer = RegRead('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer')
If Not @error Then
    If Number($sVer) >= $iTime Then
        MsgBox(64, '', 'Время работы программы исчерпано')
        Exit
    Else
        If Number($sVer) < $iTime Then $iTimeDiff = $iTime - Number($sVer)
    EndIf
Else
    $iTimeDiff = $iTime
EndIf
Global $Form1 = GUICreate('Form1', 442, 90, 389, 210)
Global $Label1 = GUICtrlCreateLabel('Label1', 64, 32, 276, 17)
GUISetState()
Global $startTimer = TimerInit()
AdlibRegister('_TimerVer')
Local $iDiff
While 1
    $iDiff = $iTimeDiff - Ceiling(TimerDiff($startTimer))
    If $iDiff <= 0 Then
        GUICtrlSetData($Label1, 0)
    Else
        GUICtrlSetData($Label1, $iDiff)
    EndIf
    Switch GUIGetMsg()
        Case -3
            RegWrite('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer', 'REG_SZ', Ceiling(TimerDiff($startTimer)))
            Exit

    EndSwitch
WEnd

Func _TimerVer()
    If Ceiling(TimerDiff($startTimer)) >= $iTimeDiff Then
        RegWrite('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer', 'REG_SZ', $iTime)
        MsgBox(64, '', 'Время работы программы истекло', 0, $Form1)
        Exit
    EndIf
EndFunc   ;==>_TimerVer
а одно и тоже время не работает только разное как то в реестре фиксируется да
Сообщение автоматически объединено:

и при закрытии проги время возвращается
 
Последнее редактирование:

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
изменил предыдущий код.
 
Верх