Что нового

Время, дата Установить время работы скрипта

Alex58reg

Новичок
Сообщения
41
Репутация
0
как в том коде сделать так чтобы при завершении работы скрипта время его работы не сохранялось а продолжало уменьшаться то есть выставил работу скрипта на сутки он поработал пол часа и вы его завершили и запустили через 12 часов к примеру нужно чтобы в скрипте осталось 11 с половиной часов выполнения а не 23 с половиной
вот код
Код:
Global $iNameProg = 'New_Prog_Ver.123_NT-456'
Global $iTime = 262974383
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
 

IMStrelcov

CTPEJIbLLOB
Сообщения
259
Репутация
66
Код:
;если запись есть то это будет точка отсчета.
$sVer = RegRead('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer')
;если нет, фиксируешь время первого запуска.
If Not $sVer Then
   $sVer = TimerInit()
   RegWrite('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer', 'REG_SZ', $sVer)
EndIf

;далее сверяешься:
;если больше 24 (милисек*сек*мин*час) часов, то ...
If TimerDiff($sVer) > (1000*60*60*24) Then MsgBox(64, '', 'Время работы программы исчерпано')

;правда не знаю будет ли это работать если комп перезагрузить



;-------------------------------------------------------------------------------



;вот другой вариант, не знаю как скрипт нагружать будет.

#include <Date.au3>

;если запись есть то это будет точка отсчета.
$sVer = RegRead('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer')
;если нет, фиксируешь время первого запуска.
If Not $sVer Then
   $sVer = @YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC
   RegWrite('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer', 'REG_SZ', $sVer)
EndIf

;далее сверяешься:
;если больше 24 (сек*мин*час) часов, то ...
If _DateDiff('s', $sVer, @YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC) > (60*60*24) Then MsgBox(64, '', 'Время работы программы исчерпано')
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
@Alex58reg
Переименуйте тему в соответствии с правилами.
 
Автор
A

Alex58reg

Новичок
Сообщения
41
Репутация
0
Код:
;если запись есть то это будет точка отсчета.
$sVer = RegRead('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer')
;если нет, фиксируешь время первого запуска.
If Not $sVer Then
   $sVer = TimerInit()
   RegWrite('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer', 'REG_SZ', $sVer)
EndIf

;далее сверяешься:
;если больше 24 (милисек*сек*мин*час) часов, то ...
If TimerDiff($sVer) > (1000*60*60*24) Then MsgBox(64, '', 'Время работы программы исчерпано')

;правда не знаю будет ли это работать если комп перезагрузить



;-------------------------------------------------------------------------------



;вот другой вариант, не знаю как скрипт нагружать будет.

#include <Date.au3>

;если запись есть то это будет точка отсчета.
$sVer = RegRead('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer')
;если нет, фиксируешь время первого запуска.
If Not $sVer Then
   $sVer = @YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC
   RegWrite('HKEY_CURRENT_USER\Software\New_Prog_Ver.123_NT-456', 'TimeVer', 'REG_SZ', $sVer)
EndIf

;далее сверяешься:
;если больше 24 (сек*мин*час) часов, то ...
If _DateDiff('s', $sVer, @YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC) > (60*60*24) Then MsgBox(64, '', 'Время работы программы исчерпано')
куд все это вставлять можно полным кодом пример
 

IMStrelcov

CTPEJIbLLOB
Сообщения
259
Репутация
66
куд все это вставлять можно полным кодом пример
Код:
#include <Date.au3>

Global $iEndTime = 60*60*24;время жизни программы в секундах (сейчас 24 часа)
Global $iNameProg = 'New_Prog_Ver.123_NT-456'
Global $iStartTime = RegRead('HKEY_CURRENT_USER\Software\'&$iNameProg, 'TimeVer')

If Not $iStartTime Then
   $iStartTime = @YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC
   RegWrite('HKEY_CURRENT_USER\Software\'&$iNameProg, 'TimeVer', 'REG_SZ', $iStartTime)
EndIf
_LifeCheck_()

Global $Form1 = GUICreate('Form1', 442, 90, 389, 210)
Global $Label1 = GUICtrlCreateLabel('Label1', 64, 32, 276, 17)
GUISetState()

While 1
   Switch GUIGetMsg()
      Case -3
         Exit
      Case Else
         GUICtrlSetData($Label1, 'Осталось: '& _LifeCheck_()& ' сек.')
    EndSwitch
WEnd

Func _LifeCheck_()
   Local $_iTime = _DateDiff('s', $iStartTime, @YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC)
   If $_iTime > $iEndTime Then
      MsgBox(64, '', 'Время работы программы исчерпано')
      Exit
   EndIf
   Return $iEndTime-$_iTime
EndFunc
 
Верх