Python实现自动从中控考勤机软件中下载记录数据

# pip install pywin32

import win32gui
import win32api
import win32con
import time

# FindWindow(窗体类名,窗口标题)
# 通过窗体类名和窗口名(窗口标题)查找主窗口的句柄

# FindWindowEx()
# 描述:搜索类名和窗体名匹配的窗体,并返回这个窗体的句柄。不区分大小写,找不到就返回0。
# 参数:
# hwndParent:若不为0,则搜索句柄为hwndParent窗体的子窗体。
# hwndChildAfter:若不为0,则按照z-index的顺序从hwndChildAfter向后开始搜索子窗体,否则从第一个子窗体开始搜索。
# lpClassName:字符型,是窗体的类名,这个可以在Spy++里找到。
# lpWindowName:字符型,是窗口名,也就是标题栏上你能看见的那个标题。
# 说明:找到了主窗口以后就靠它来定位子窗体啦。

# 如果全选列表中的设备,点击下载时,是会自动下载所有设备的数据的
# 1、鼠标右键点击出现列表_坐标:364,194 颜色:16777215
# 2、鼠标左键点击选择全部设备_坐标:413,208 颜色:16777215
# 3、鼠标左键点击连接设备按钮_坐标:361,89 颜色:9221466
# 4、鼠标左键点击从设备下载记录数据坐标:124,299 颜色:14199984


# 查询主窗口的句柄,未查询到返回0
hwndParent = win32gui.FindWindow('TFormAttMain',None)

# 我的设备列表
childParent = win32gui.FindWindowEx(hwndParent,0,'TListView',None)

print(hwndParent)

# 获取主窗口焦点
win32gui.SetForegroundWindow(hwndParent)

# 初始化主窗口大小
win32gui.MoveWindow(hwndParent,20,20,1300,405,True)

# 步骤1区域-------------------------------------------------------------

# 设定鼠标焦点位置,为鼠标右击做准备
win32api.SetCursorPos([364,194])

#延迟0.1秒
time.sleep(0.1)

# 鼠标右键点击出现列表
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN,0,0,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP,0,0,0,0)

# 步骤1区域结束-------------------------------------------------------------

time.sleep(1)

# 步骤2区域-------------------------------------------------------------

# 设定鼠标焦点位置,为左键点击选择全部设备做准备
win32api.SetCursorPos([413,208])

# 延迟0.1秒
time.sleep(0.1)

# 鼠标左键点击选择全部设备
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0,0,0)

# 步骤2区域结束-------------------------------------------------------------

time.sleep(1)

# 步骤3区域-------------------------------------------------------------

# 设定鼠标焦点位置,为左键点击连接设备按钮做准备
win32api.SetCursorPos([361,89])

# 延迟0.1秒
time.sleep(0.1)

# 鼠标左键点击连接设备按钮
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0,0,0)

# 步骤3区域结束-------------------------------------------------------------
# 设备连接中,需等待较长时间
time.sleep(6*60)

# 步骤4区域-------------------------------------------------------------

# 设定鼠标焦点位置,为左键点击从设备下载记录数据做准备
win32api.SetCursorPos([124,299])

# 延迟2秒
time.sleep(2)

# 鼠标左键点击从设备下载记录数据
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0,0,0)

# 步骤4区域结束-------------------------------------------------------------

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值