Что нового

Определенное время работы скрипта

royalfint

Трейдер, Программист, Игродел, Веб-Мастер
Сообщения
74
Репутация
0
Всем привет!
Мне нужно чтобы скрипт работал в нужное мне время. Но не получается, где то погрешность в коде.
Основной код:
Код:
If TradeTime() Then
 ;my code here :)
Endif

Функция:
Код:
Func TradeTime()
   $uTimed=GUICtrlRead($iTimed)
   $uStartTime1=GUICtrlRead($iStartTime1)
   $uStartTime2=GUICtrlRead($iStartTime2)
   $uFinishTime1=GUICtrlRead($iFinishTime1)
   $uFinishTime2=GUICtrlRead($iFinishTime2)
   $uStartTime3=GUICtrlRead($iStartTime3)
   $uStartTime4=GUICtrlRead($iStartTime4)
   $uFinishTime3=GUICtrlRead($iFinishTime3)
   $uFinishTime4=GUICtrlRead($iFinishTime4)
   $uStartTime5=GUICtrlRead($iStartTime5)
   $uStartTime6=GUICtrlRead($iStartTime6)
   $uFinishTime5=GUICtrlRead($iFinishTime5)
   $uFinishTime6=GUICtrlRead($iFinishTime6)
   If ($uTimed = "1 Параметр") Then
	  If @HOUR*60+@MIN > $uStartTime1*60+$uFinishTime1 And @HOUR*60+@MIN < $uStartTime2*60+$uFinishTime2 Then
		 Return True
	  Else
		 Return False
	  EndIf
   EndIf

   If ($uTimed = "2 Параметра") Then
	  If BitOR(@HOUR*60+@MIN > $uStartTime1*60+$uFinishTime1 And @HOUR*60+@MIN < $uStartTime2*60+$uFinishTime2,@HOUR*60+@MIN > $uStartTime3*60+$uFinishTime3 And @HOUR*60+@MIN < $uStartTime4*60+$uFinishTime4) Then
		 Return True
	  Else
		 Return False
	  EndIf
   EndIf

   If ($uTimed = "3 Параметра") Then
	  If BitOR(@HOUR*60+@MIN > $uStartTime1*60+$uFinishTime1 And @HOUR*60+@MIN < $uStartTime2*60+$uFinishTime2,@HOUR*60+@MIN > $uStartTime3*60+$uFinishTime3 And @HOUR*60+@MIN < $uStartTime4*60+$uFinishTime4,@HOUR*60+@MIN > $uStartTime5*60+$uFinishTime5 And @HOUR*60+@MIN < $uStartTime6*60+$uFinishTime6) Then
		 Return True
	  Else
		 Return False
	  EndIf
   EndIf
EndFunc

Всем заранее спасибо! :IL_AutoIt_1:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
royalfint
Сэр, вы серьёзно считаете, что на основе предоставленной информации и кода, вам можно помочь?
Во-первых, откуда нам знать что это за нужно вам время, и во-вторых, мы не знаем что содержится в каждом из GUICtrlRead.
 
Автор
royalfint

royalfint

Трейдер, Программист, Игродел, Веб-Мастер
Сообщения
74
Репутация
0
Код:
Global $iTimed = GUICtrlCreateCombo("", 90, 50, 180,25)
GUICtrlSetData(-1, "1 Параметр|2 Параметра|3 Параметра", "1 Параметр")
GUICtrlSetOnEvent(-1, "Timed_Func")

GUICtrlCreateLabel("С",60,92,50,25)
GUICtrlCreateLabel("До",60,132,50,25)
Global $iStartTime1 = GUICtrlCreateInput("0", 90, 90, 85, 25)
Global $iStartTimeUpDown1 = GUICtrlCreateUpdown($iStartTime1)
GUICtrlSetOnEvent(-1, "StartTime_Func")
Global $iStartTime2 = GUICtrlCreateInput("0", 185, 90, 85, 25)
Global $iStartTimeUpDown2 = GUICtrlCreateUpdown($iStartTime2)
GUICtrlSetOnEvent(-1, "StartTime_Func")
Global $iFinishTime1 = GUICtrlCreateInput("23", 90, 130, 85, 25)
Global $iFinishTimeUpDown1 = GUICtrlCreateUpdown($iFinishTime1)
GUICtrlSetOnEvent(-1, "FinishTime_Func")
Global $iFinishTime2 = GUICtrlCreateInput("59", 185, 130, 85, 25)
Global $iFinishTimeUpDown2 = GUICtrlCreateUpdown($iFinishTime2)
GUICtrlSetOnEvent(-1, "FinishTime_Func")

GUICtrlCreateLabel("С",60,172,50,25)
GUICtrlCreateLabel("До",60,212,50,25)
Global $iStartTime3 = GUICtrlCreateInput("0", 90, 172, 85, 25)
Global $iStartTimeUpDown3 = GUICtrlCreateUpdown($iStartTime3)
GUICtrlSetOnEvent(-1, "StartTime_Func")
Global $iStartTime4 = GUICtrlCreateInput("0", 185, 172, 85, 25)
Global $iStartTimeUpDown4 = GUICtrlCreateUpdown($iStartTime4)
GUICtrlSetOnEvent(-1, "StartTime_Func")
Global $iFinishTime3 = GUICtrlCreateInput("23", 90, 212, 85, 25)
Global $iFinishTimeUpDown3 = GUICtrlCreateUpdown($iFinishTime3)
GUICtrlSetOnEvent(-1, "FinishTime_Func")
Global $iFinishTime4 = GUICtrlCreateInput("59", 185, 212, 85, 25)
Global $iFinishTimeUpDown4 = GUICtrlCreateUpdown($iFinishTime4)
GUICtrlSetOnEvent(-1, "FinishTime_Func")

GUICtrlCreateLabel("С",60,252,50,25)
GUICtrlCreateLabel("До",60,292,50,25)
Global $iStartTime5 = GUICtrlCreateInput("0", 90, 252, 85, 25)
Global $iStartTimeUpDown5 = GUICtrlCreateUpdown($iStartTime5)
GUICtrlSetOnEvent(-1, "StartTime_Func")
Global $iStartTime6 = GUICtrlCreateInput("0", 185, 252, 85, 25)
Global $iStartTimeUpDown6= GUICtrlCreateUpdown($iStartTime6)
GUICtrlSetOnEvent(-1, "StartTime_Func")
Global $iFinishTime5 = GUICtrlCreateInput("23", 90, 292, 85, 25)
Global $iFinishTimeUpDown5 = GUICtrlCreateUpdown($iFinishTime5)
GUICtrlSetOnEvent(-1, "FinishTime_Func")
Global $iFinishTime6 = GUICtrlCreateInput("59", 185, 292, 85, 25)
Global $iFinishTimeUpDown6 = GUICtrlCreateUpdown($iFinishTime6)
GUICtrlSetOnEvent(-1, "FinishTime_Func")
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Скорее всего неверно расставлены параметры...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Как то так:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Date.au3>

Opt('GUIOnEventMode', 1)

$hGUI = GUICreate("Test Script", 350, 400)

GUISetOnEvent($GUI_EVENT_CLOSE, 'OnExit_Func')

$iTimed = GUICtrlCreateCombo("", 90, 50, 180, 25)
GUICtrlSetData(-1, "1 Параметр|2 Параметра|3 Параметра", "1 Параметр")
GUICtrlSetOnEvent(-1, "Timed_Func")

GUICtrlCreateLabel("С", 60, 92, 50, 25)
GUICtrlCreateLabel("До", 60, 132, 50, 25)
$iStartTime1 = GUICtrlCreateInput("0", 90, 90, 85, 25)
$iStartTimeUpDown1 = GUICtrlCreateUpdown($iStartTime1)
GUICtrlSetOnEvent(-1, "StartTime_Func")
$iStartTime2 = GUICtrlCreateInput("0", 185, 90, 85, 25)
$iStartTimeUpDown2 = GUICtrlCreateUpdown($iStartTime2)
GUICtrlSetOnEvent(-1, "StartTime_Func")
$iFinishTime1 = GUICtrlCreateInput("23", 90, 130, 85, 25)
$iFinishTimeUpDown1 = GUICtrlCreateUpdown($iFinishTime1)
GUICtrlSetOnEvent(-1, "FinishTime_Func")
$iFinishTime2 = GUICtrlCreateInput("59", 185, 130, 85, 25)
$iFinishTimeUpDown2 = GUICtrlCreateUpdown($iFinishTime2)
GUICtrlSetOnEvent(-1, "FinishTime_Func")

GUICtrlCreateLabel("С", 60, 172, 50, 25)
GUICtrlCreateLabel("До", 60, 212, 50, 25)
$iStartTime3 = GUICtrlCreateInput("0", 90, 172, 85, 25)
$iStartTimeUpDown3 = GUICtrlCreateUpdown($iStartTime3)
GUICtrlSetOnEvent(-1, "StartTime_Func")
$iStartTime4 = GUICtrlCreateInput("0", 185, 172, 85, 25)
$iStartTimeUpDown4 = GUICtrlCreateUpdown($iStartTime4)
GUICtrlSetOnEvent(-1, "StartTime_Func")
$iFinishTime3 = GUICtrlCreateInput("23", 90, 212, 85, 25)
$iFinishTimeUpDown3 = GUICtrlCreateUpdown($iFinishTime3)
GUICtrlSetOnEvent(-1, "FinishTime_Func")
$iFinishTime4 = GUICtrlCreateInput("59", 185, 212, 85, 25)
$iFinishTimeUpDown4 = GUICtrlCreateUpdown($iFinishTime4)
GUICtrlSetOnEvent(-1, "FinishTime_Func")

GUICtrlCreateLabel("С", 60, 252, 50, 25)
GUICtrlCreateLabel("До", 60, 292, 50, 25)
$iStartTime5 = GUICtrlCreateInput("0", 90, 252, 85, 25)
$iStartTimeUpDown5 = GUICtrlCreateUpdown($iStartTime5)
GUICtrlSetOnEvent(-1, "StartTime_Func")
$iStartTime6 = GUICtrlCreateInput("0", 185, 252, 85, 25)
$iStartTimeUpDown6 = GUICtrlCreateUpdown($iStartTime6)
GUICtrlSetOnEvent(-1, "StartTime_Func")
$iFinishTime5 = GUICtrlCreateInput("23", 90, 292, 85, 25)
$iFinishTimeUpDown5 = GUICtrlCreateUpdown($iFinishTime5)
GUICtrlSetOnEvent(-1, "FinishTime_Func")
$iFinishTime6 = GUICtrlCreateInput("59", 185, 292, 85, 25)
$iFinishTimeUpDown6 = GUICtrlCreateUpdown($iFinishTime6)
GUICtrlSetOnEvent(-1, "FinishTime_Func")

GUISetState(@SW_SHOW, $hGUI)

While 1
	Sleep(10)
WEnd

Func TradeTime()
	$uTimed = GUICtrlRead($iTimed)
	$uStartTime1 = GUICtrlRead($iStartTime1)
	$uStartTime2 = GUICtrlRead($iStartTime2)
	$uFinishTime1 = GUICtrlRead($iFinishTime1)
	$uFinishTime2 = GUICtrlRead($iFinishTime2)
	$uStartTime3 = GUICtrlRead($iStartTime3)
	$uStartTime4 = GUICtrlRead($iStartTime4)
	$uFinishTime3 = GUICtrlRead($iFinishTime3)
	$uFinishTime4 = GUICtrlRead($iFinishTime4)
	$uStartTime5 = GUICtrlRead($iStartTime5)
	$uStartTime6 = GUICtrlRead($iStartTime6)
	$uFinishTime5 = GUICtrlRead($iFinishTime5)
	$uFinishTime6 = GUICtrlRead($iFinishTime6)
	
	$sDate = @YEAR & '/' & @MON & '/' & @MDAY
	$sTime = @HOUR & ':' & @MIN & ':00'
	
	$iDiff1 = _DateDiff('n', $sDate & ' ' & $sTime, $sDate & ' ' & $uStartTime1 & ':' & $uStartTime2)
	$iDiff2 = _DateDiff('n', $sDate & ' ' & $sTime, $sDate & ' ' & $uFinishTime1 & ':' & $uFinishTime2)
	$iDiff3 = _DateDiff('n', $sDate & ' ' & $sTime, $sDate & ' ' & $uStartTime3 & ':' & $uStartTime4)
	$iDiff4 = _DateDiff('n', $sDate & ' ' & $sTime, $sDate & ' ' & $uFinishTime3 & ':' & $uFinishTime4)
	$iDiff5 = _DateDiff('n', $sDate & ' ' & $sTime, $sDate & ' ' & $uStartTime5 & ':' & $uStartTime6)
	$iDiff6 = _DateDiff('n', $sDate & ' ' & $sTime, $sDate & ' ' & $uFinishTime5 & ':' & $uFinishTime6)
	
	If ($uTimed = "1 Параметр") Then
		Return ($iDiff1 < 0 And $iDiff2 > 0)
	EndIf
	
	If ($uTimed = "2 Параметра") Then
		Return ($iDiff1 < 0 And $iDiff2 > 0) Or ($iDiff3 < 0 And $iDiff4 > 0)
	EndIf
	
	If ($uTimed = "3 Параметра") Then
		Return ($iDiff1 < 0 And $iDiff2 > 0) Or ($iDiff3 < 0 And $iDiff4 > 0) Or ($iDiff5 < 0 And $iDiff6 > 0)
	EndIf
EndFunc

Func Timed_Func()
	$bRet = TradeTime()
	MsgBox(64, 'Title', $bRet)
EndFunc

Func StartTime_Func()
	
EndFunc

Func FinishTime_Func()
	
EndFunc

Func OnExit_Func()
	Exit
EndFunc
 
Верх