Добрый день, друзья.
Помогите с решением проблемы.
Имеется скрипт, запускающий-закрывающий по хронометражу различные файлы, по их адресам.
Хронометраж и адреса файлов указаны в текстовом файле 1.txt
Но хронометраж этот - относительный, заданный вручную, то есть не привязанный ко времени на часах компьютера.
Подскажите - как заставить скрипт запускать нужный файл - если время напротив адреса файла - совпадет со временем на часах компьютера ?
Помогите с решением проблемы.
Имеется скрипт, запускающий-закрывающий по хронометражу различные файлы, по их адресам.
Хронометраж и адреса файлов указаны в текстовом файле 1.txt
Но хронометраж этот - относительный, заданный вручную, то есть не привязанный ко времени на часах компьютера.
Код:
#include <Array.au3>
#include <Timers.au3>
Opt("TrayAutoPause", 0)
OnAutoItExitRegister("_OnExit")
Global $sTimingsPath = @ScriptDir & "\1.txt", $aTimings, $aOut, $iWait, $iTimer, $hScriptWnd
$aTimings = FileReadToArray($sTimingsPath)
If @error Then Exit MsgBox(16, "Ошибка", "Ошибка записи в текстовый файл.")
AutoItWinSetTitle(@ScriptFullPath)
$hScriptWnd = WinGetHandle(@ScriptFullPath)
$aOut = StringRegExp($aTimings[0], "([0-9]{2}):([0-9]{2}):([0-9]{2})", 1)
If @error Then Exit MsgBox(16, "Ошибка", "Не удалось получить общее время работы.")
$iTimer = _Timer_SetTimer($hScriptWnd, $aOut[0] * 3600000 + $aOut[1] * 60000 + $aOut[2] * 1000, "_TimerExit")
$hTimer = TimerInit()
Dim $aOpen[0]
; Вместо "з" в конце ставьте "/" в начале пути к файлу
For $i = 1 To UBound($aTimings) - 1
$aOut = StringRegExp($aTimings[$i], "([0-9]{2}):([0-9]{2}):([0-9]{2}) (.+)", 1)
If IsArray($aOut) Then
$iWait = $aOut[0] * 3600000 + $aOut[1] * 60000 + $aOut[2] * 1000
Do
Sleep(10)
Until TimerDiff($hTimer) >= $iWait
If StringLeft($aOut[3], 1) <> "/" Then
If FileExists($aOut[3]) Then
_ArrayAdd($aOpen, ShellExecute($aOut[3]) & "@@@" & $aOut[3])
Else
ConsoleWrite("Файл не существует: " & $aOut[3] & @CRLF)
EndIf
Else
For $j = 0 To UBound($aOpen) - 1
If StringTrimLeft($aOut[3], 1) = StringSplit($aOpen[$j], "@@@", 1+2)[1] Then
ProcessClose(StringSplit($aOpen[$j], "@@@", 1+2)[0])
EndIf
Next
EndIf
EndIf
Next
While 1
Sleep(10)
WEnd
Func _TimerExit($hWnd, $uMsg, $IDTimer, $dwTime)
Exit
EndFunc ;==>_TimerExit
Func _OnExit()
_Timer_KillTimer($hScriptWnd, $iTimer)
EndFunc ;==>_OnExit
Подскажите - как заставить скрипт запускать нужный файл - если время напротив адреса файла - совпадет со временем на часах компьютера ?