ArrayCount = 0
Loop, Read, Times.txt ; This loop retrieves each line from the file.
{
ArrayCount += 1 ; Keep track of how many items are in the array.
ArrayTime%ArrayCount% := A_LoopReadLine
}
WinGetTitle, Title, A
Loop %ArrayCount%
{
element := ArrayTime%A_Index%
Time = %A_WDay%%A_Hour%%A_Min%
msgbox %Time% , %element%
if (Time=%element%)
{
IfWinExist, Test.txt
{
WinActivate
Sleep 500
Send Hi{enter}
msgbox %Time% , %element%
Sleep 500
WinActivate, %Title%
}
}
}
好的,主要问题在于这部分:
if(Time =%element%)
我也试过
if(%Time%=%element%)
if(A_WDay.A_Hour.A_Min =%element%)
我认为其他一些类似的变化,我得到的问题是它总是正确的,或者总是假的,这取决于我如何写它。 文本文件内部是这样的列表:
10000
10700
11400
20400
21100
我添加了一个额外的行,它有当前的测试时间,我添加了msgbox进行比较,我可以清楚地看到它们在它不起作用时都是相同的,或者当它不同时它们是不同的确实。对于这样一个基本问题我很抱歉,但我觉得我已经尝试了很长时间,并且在变量和IF语句上阅读了所有内容,感谢您的帮助。
还有一点是我需要它在星期天午夜开始每隔7小时起飞一次,这就是我想出的,如果有一个更好的方式,我也很高兴听到这个
答案 0 :(得分:0)
试试这个:
if % Time = element
{
MsgBox, Equal!
}
对于计划部分,尝试通过Windows任务计划程序运行脚本(点击Windows+R
,键入taskschd.msc
并按Enter键)。互联网上有教程解释如何创建新任务。
答案 1 :(得分:0)
关于计时器,请看一下这个例子。
SetTimer, AlertType1, 60000
ToAlertType1:=1
ToAlertType2:=1
AlertType1:
;If A_WDay between 2 and 7 ; is day monday - sunday?
;{
If (A_Hour = 7 or A_Hour = 13)
{
If (ToAlertType1)
{
SoundBeep, 500, 500
ToAlertType2:=1
ToAlertType1:=0
MsgBox, 4096,%AppName%, Msg1.
Return
}
}
Else if (A_Hour = 21)
{
If (ToAlertType2)
{
SoundBeep, 500, 500
ToAlertType2:=0
ToAlertType1:=1
MsgBox, 4096,%AppName%, Msg2.
Return
}
}
;}
Return