关于windows中软件的ListView控件表格和读取

  1. 背景–定一个目标
    当我们打开windows的某些软件时,想要去获取软件表格数据,可是那些表格数据是没有复制功能的,以ListView控件为例,毕竟它是经常出现在一些数据显示,而那些数据也是我们很想要的。
    随机选择一个软件,例如SQLyog软件,里面有一个表诊断功能,这里就列了一些数据,我们想把这些表名取出来。(只是演示)
    在这里插入图片描述

  2. 安装好pywinauto – 配置好工具
    这个python包的详细信息可以参考:
    https://www.kancloud.cn/gnefnuy/pywinauto_doc/1193040
    https://github.com/pywinauto/pywinauto

  3. 下载一个辅助的工具 – 配置好工具
    Spy++:https://download.csdn.net/download/ld326/8648991
    Spy4Win:https://download.csdn.net/download/ld326/8649013
    下面是Spy4Win的一个演示,把那个“狗头”图标移要研究的窗口就在软件中显示了。
    在这里插入图片描述

  4. python代码 – 实施

# -*- coding: utf-8 -*-
"""
@author:liangrui
@file:test_win.py
@time:2020/12/25
@file_dese:
    解释与抽取表格数据
"""
from pywinauto import Application

app = Application().connect(path="D:\Program Files\SQLyog Ultimate\SQLyog.exe")
app["表诊断"].window(title_re="", class_name="SysListView32").print_control_identifiers()
# 定位到控件
print("--"*30)
list1 = app["表诊断"].child_window(class_name="SysListView32")
c_count = list1.column_count()
cur_c = 1
for item in list1.items():
    cur_c += 1
    print(item.item_data()['text'], end=" ")
    if cur_c > c_count:
        print()
        cur_c = 1
  1. 显示结果:
ListView - ''    (L717, T399, R938, B566)
['ListViewgenre', 'ListViewactor', 'ListView', 'ListViewactor_to_movie', 'ListViewmovie', 'ListViewmovie_to_genre']
child_window(class_name="SysListView32")
   | 
   | Header - ''    (L719, T401, R936, B401)
   | ['Header']
   | child_window(class_name="SysHeader32")
------------------------------------------------------------
 actor 
actor_to_movie 
genre 
movie 
movie_to_genre 

happyprince/https://blog.csdn.net/ld326/article/details/111665318

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值