ding

Import "shanhai.lua"
Dim currHour,currMinute,currSecond
Dim mmRnd = 0
Dim sumFor=Int(ReadUIConfig("sumFor"))
Dim waitTime=Int(ReadUIConfig("waitTime"))//单位秒

If sumFor = 0 Then
sumFor = 3
End If

If waitTime = 0 Then
waitTime = 39
End If

Dim satu = ReadUIConfig("satu")
Dim sund = ReadUIConfig("sund")

Dim cardhh = ReadUIConfig("cardhh")
Dim cardmm = ReadUIConfig("cardmm")

Dim w_cardhh = ReadUIConfig("w_cardhh")
Dim w_cardmm = ReadUIConfig("w_cardmm")
Dim dingshijiancha=0
Dim sbTimeH=7
Dim sbTimeM=17
Dim xbTimeH=17
Dim xbTimeM=30

sbTimeH = Int(cardhh)
sbTimeM = Int(cardmm)
If sbTimeH = 0 Then
sbTimeH = DateTime.Hour()
End If
If sbTimeM = 0 Then
sbTimeM = DateTime.Minute() +1
End If
outPrint "预计首次触发时间:" & CStr(sbTimeH) & ":" & CStr(sbTimeM)
Delay 1000

xbTimeH = Int(w_cardhh)
xbTimeM = Int(w_cardmm)
If xbTimeH = 0 Then
xbTimeH = DateTime.Hour()
End If
If xbTimeM = 0 Then
xbTimeM = DateTime.Minute() +1
End If
outPrint "预计第二次触发时间:" & CStr(xbTimeH) & ":" & CStr(xbTimeM)
Delay 1000

Dim isCard=0//不打卡0,打卡大于0小于10

Dim intX, intY,times//寻找图片标记使用
Dim cardTagSendMail=0
dim cardExec=0

Log.Open //打开日志

While True
Dim p = CatchTouchPoint(1)
ShowMessage p[1][1]
Dim currWeek = DateTime.WeekDay()
currHour = DateTime.Hour()
currMinute = DateTime.Minute()
currSecond= DateTime.Second()
Dim hm= CSTR(currHour) & ":" & CSTR(currMinute)&":"& CSTR(currSecond)
If currSecond = 59 or currSecond = 30 Then
ShowMessage "当前时间:" & hm
End If

If currHour = 22 and currMinute = 10 and dingshijiancha = 0 Then
setMMRnd (3)
sbTimeM = sbTimeM + mmRnd
Device.Lock
Device.UnLock
dingshijiancha = 1
Delay 600
sendEmail "延后分钟:" & CStr(mmRnd) & " 服务还在:" & CStr(DateTime.Hour()) & ":" & CStr(DateTime.Minute())
Device.Lock
End If

//处理星期6 7 情况,weekTag 0为false 1为true
Dim weekTag = 0
If currWeek = 6 and satu Then
weekTag= 1
End If

If currWeek = 7 and sund Then
weekTag= 1
End If

If currWeek >= 1 and currWeek <= 5 Then
weekTag= 1
End If

If weekTag=1 and ((currHour = sbTimeH and currMinute = sbTimeM) or (currHour = xbTimeH and currMinute = xbTimeM)) Then
If isCard = 0 Then
sbTimeM = sbTimeM - mmRnd
mmRnd = 0
isCard = sumFor//反复开启应用n次
End If
End If

While isCard > 0
Device.Lock
Device.UnLock
killDD
Delay 200
openDD

outPrint "isCard:" & isCard
If isCard = sumFor Then
sendEmail "开始,"& CStr(DateTime.Hour()) & ":" & CStr(DateTime.Minute())
End If

searchTag

If isCard = 1 Then //最后一次循环的时候锁屏
cardTagSendMail = 0//上下班打卡标记,免得多次sendEmail
dingshijiancha = 0//定时23:30 5:10
cardExec = 0//检测有没有打卡成功的标记
sendEmail CStr(sumFor) & "次检查完毕,"& CStr(DateTime.Hour()) & ":" & CStr(DateTime.Minute())
Delay 1000 * 20
killDD
Device.Lock()
End If

isCard = isCard-1
Delay 1000 * waitTime
Wend

If (currHour=11 or currHour=15 or currHour=16 or currHour=17 or currHour=20 or currHour=4) and currMinute = 50 Then
Device.Lock
Device.UnLock
Delay 1000 * 30
sendEmail "服务还在:"& CStr(DateTime.Hour()) & ":" & CStr(DateTime.Minute())
Delay 1000 * 30
Device.Lock
End If
Wend

Function openDD
RunApp "com.alibaba.android.rimet"
End Function
Function killDD
KillApp "com.alibaba.android.rimet"
End Function

Function setMMRnd(max)
Randomize
mmRnd = Int(((max - 0 + 1) * Rnd()) + 0)
ShowMessage "向后延长分钟数:" & CStr(mmRnd)
End Function

Sub searchTag
/*
times = 0
FindPic 0, 0, 16959, 16959, "Attachment:my.png", "000000", 0, 0.8, intX, intY
While intX = -1 And intY = -1 and times < 5
FindPic 0, 0, 16959, 16959, "Attachment:my.png", "000000", 0, 0.8, intX, intY
If intX > -1 And intY > -1 Then
Exit While
End If
Delay 5000
times = times + 1
Wend

times = 0
FindPic 0, 0, 16959, 16959, "Attachment:search.png", "000000", 0, 0.8, intX, intY
While intX = -1 And intY = -1 and times < 5
FindPic 0, 0, 16959, 16959, "Attachment:search.png", "000000", 0, 0.8, intX, intY
If intX > -1 And intY > -1 Then
Exit While
End If
Delay 5000
times = times + 1
Wend
*/
times = 0
FindPic 0, 0, 16959, 16959, "Attachment:gs.png", "000000", 0, 0.8, intX, intY
While intX >= -1 And intY >= -1 and times < 11
FindPic 0, 0, 16959, 16959, "Attachment:gs.png", "000000", 0, 0.8, intX, intY
If intX > -1 And intY > -1 Then
Tap intX, intY
Exit While
End If
Delay 6000
times = times + 1
Wend

times = 0
FindPic 0, 0, 16959, 16959, "Attachment:card.png", "000000", 0, 0.8, intX, intY
While intX >= -1 And intY >= -1 and times < 11
FindPic 0, 0, 16959, 16959, "Attachment:card.png", "000000", 0, 0.8, intX, intY
If intX > -1 And intY > -1 Then
Tap intX, intY
Exit While
End If
Delay 6000
times = times + 1
Wend

///*//上午打卡
If DateTime.Hour() < 13 and cardTagSendMail = 0 Then
cardTagSendMail=1
times = 0

sbxb_Suc "sb"
End If
//*/

///*下午打卡
If DateTime.Hour() > 13 and cardTagSendMail = 0 Then
cardTagSendMail=1
times = 0

sbxb_Suc "xb"
End If
//*/

End Sub

Sub sbxb_Suc(name)
FindPic 0, 0, 16959, 16959, "Attachment:" & name & "_success.png", "000000", 0, 0.8, intX, intY
While intX >= -1 And intY >= -1 and times < 11
FindPic 0, 0, 16959, 16959, "Attachment:" & name & "_success.png", "000000", 0, 0.8, intX, intY
If intX > -1 And intY > -1 Then
cardExec = 1
ShowMessage name & "已经打过卡"
sendEmail name & "打卡成功:" & CStr(DateTime.Hour()) & ":" & CStr(DateTime.Minute())
Exit While
End If
Delay 4000
times = times + 1
Wend

If cardExec = 0 Then
//FindStr(0,0,2000,2000,"长安","9f2e3f-000000",1.0,intX,intY)
//FindPic 0, 0, 16959, 16959, "Attachment:" & name & "_exec.png", "000000", 0, 0.8, intX, intY
Dim n="上班打卡"
If name = "xb" Then
n="下班打卡"
End If
FindStr 0, 0, 16959, 16959, n, "9f2e3f-000000", 1.0, intX, intY
While intX >= -1 And intY >= -1 and times < 8
//FindPic 0, 0, 16959, 16959, "Attachment:" & name & "_exec.png", "000000", 0, 0.8, intX, intY
FindStr 0, 0, 16959, 16959, n, "9f2e3f-000000", 1.0, intX, intY
If intX > -1 And intY > -1 Then
Delay 1000*10
Tap intX, intY
ShowMessage "执行打卡成功"
sendEmail name & "打卡成功:" & CStr(DateTime.Hour()) & ":" & CStr(DateTime.Minute())
Exit While
End If
Delay 4000
times = times + 1
Wend
End If
End Sub

Sub sendEmail(msg)
For 3 '固定循环3次跳出
Dim server ="smtp.qq.com"
Dim send = "472708969@qq.com"
Dim pass = "ddvalizklnsubggg"
Dim title = "card"
Dim content = msg
Dim address = "472708969@qq.com"
Dim ret = SendSimpleEmail(server,send,pass,title,content,address)
If ret = True Then
outPrint "邮件发送成功"
Exit For
Else
outPrint "邮件发送失败"
End If
Next
End Sub

Sub outPrint(msg)
TracePrint msg
ShowMessage msg
Delay 30
End Sub

原文地址:https://www.cnblogs.com/zzq-include/p/10988383.html