Python技术:中控考勤,实时获取打卡数据,实时数据上传。Python技术中控考勤实时获取打卡数据
代码演示
import win32com.client
import sys,requests,datetime
import time
import threading
import json
from subprocess import run, PIPE
class EventMask:
def OnConnected(self):
print ("OnConnected")
data = {"OnConnected":"OnConnected"}
senderror(' OnConnected '+json.dumps(data),'syszk.log')
# print(requests.post('',json={"EnrollNumber":"EnrollNumber"}))
# jiu = json.loads(jj.json())
# print(jiu["EnrollNumber"])
def OnDisConnected(self):
print ("OnDisConnected")
def OnAttTransactionEx(self,EnrollNumber,IsInValid,AttState,VerifyMode,Year,Month,Day,Hour,Minute,Second,WorkCode):
print("OnAttTransactionEx",EnrollNumber,IsInValid,AttState,VerifyMode,Year,Month,Day,Hour,Minute,Second,WorkCode)
data = {"EnrollNumber":EnrollNumber,"IsInValid":IsInValid,"AttState":AttState,"VerifyMode":VerifyMode,"Year":Year,"Month":Month,"Day":Day,"Hour":Hour,"Minute":Minute,"Second":Second,"WorkCode":WorkCode}
senderror(" OnAttTransactionEx "+json.dumps(data),'syszkAttTransactionEx.log')
# requests.post('',json=data)
def OnAttTransaction(self,EnrollNumber,IsInValid,AttState,VerifyMethod,Year,Month,Day,Hour,Minute,Second):
print("OnAttTransaction",EnrollNumber,IsInValid,AttState,VerifyMethod,Year,Month,Day,Hour,Minute,Second)
class Zkong:
def connect(self):
jj = win32com.client.DispatchWithEvents('zkemkeeper.ZKEM.1',EventMask)
jj.Visible = True
if not jj.Connect_Net("192.168.0.201",4370):
senderror(" Connect Error")
jj.Disconnect()
linkto()
jj.RegEvent(1,65535)
while True:
if not jishi():
senderror(" web link Error")
jj.Disconnect()
linkto()
break
time.sleep(60)
def senderror(errcont,myfile='syserror.log'):
enow=datetime.datetime.now()
now=enow.strftime('%Y-%m-%d %H:%M:%S')
errfile=open(myfile,'a')
errfile.write(now)
errfile.write(str(errcont))
errfile.write('\n')
errfile.close()
def jishi():
r = run('ping ***.***.22.18',
stdout=PIPE,
stderr=PIPE,
stdin=PIPE,
shell=True)
if r.returncode:
print('不能正常联网')
return False
else:
print('正常联网')
return True
def linkto():
print('111')
uii = True
cnt = 1
while uii:
r = run('ping ***.***.22.18',
stdout=PIPE,
stderr=PIPE,
stdin=PIPE,
shell=True)
if r.returncode:
print('relogin 第{}次'.format(cnt))
senderror(' relogin 第{}次'.format(cnt))
cnt += 1
time.sleep(60*1) # 暂停时间
else:
uii = False
print('正常联网')
jis = Zkong()
jis.connect()
if __name__ == '__main__':
list = ""
jis = Zkong()
jis.connect()
温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。