使用python UIAutomation从QQ2016(8.0)群界面获取所有群成员详细资料,

首先到https://github.com/yinkaisheng/Python-UIAutomation-for-Windows下载automation.py和AutomationClient.dll

automation.py是我写的一个python封装微软UIAutomation API的一个module,使用非常简单
运行automation.py -h查看帮助
首先打开qq群聊天窗口,运行automation.py -a,然后3秒内移动鼠标到qq群上其中一个成员上面(下图右下角红框中),等待打印qq群窗口信息,
可以看到qq群窗口的控件树形结构。

再根据控件结构获取信息,只需60几行代码,如下:

 1 #!python3
 2 # -*- coding: utf-8 -*-
 3 ‘‘‘
 4 本脚本可以获取QQ2016群所有成员详细资料,请根据提示做对应的操作
 5 作者:[email protected]
 6 2016-01-06
 7 ‘‘‘
 8 import time
 9 import automation
10
11
12 def GetPersonDetail():
13     detailWindow = automation.WindowControl(searchDepth= 1, ClassName = ‘TXGuiFoundation‘, SubName = ‘的资料‘)
14     detailPane = automation.PaneControl(searchFromControl= detailWindow, Name = ‘资料‘)
15     details = ‘‘
16     for control, depth in automation.WalkTree(detailPane, lambda c: c.GetChildren()):
17         if control.ControlType == automation.ControlType.TextControl:
18             details += control.Name
19         elif control.ControlType == automation.ControlType.EditControl:
20             details += control.CurrentValue() + ‘\n‘
21     details += ‘\n‘ * 2
22     detailWindow.Click(0.95, 0.02)
23     return details
24
25 def main():
26     print(‘请把鼠标放在QQ群聊天窗口中的一个成员上面,3秒后获取\n‘)
27     time.sleep(3)
28     listItem = automation.ControlFromCursor()
29     if listItem.ControlType != automation.ControlType.ListItemControl:
30         print(‘没有放在群成员上面,程序退出!‘)
31         return
32     consoleWindow = automation.GetConsoleWindow()
33     consoleWindow.SetActive()
34     qqWindow = listItem.GetTopWindow()
35     list = listItem.GetParentControl()
36     allListItems = list.GetChildren()
37     for listItem in allListItems:
38         automation.Logger.WriteLine(listItem.Name)
39     answer = input(‘是否获取详细信息?按y和Enter继续\n‘)
40     if answer.lower() == ‘y‘:
41         print(‘\n3秒后开始获取QQ群成员详细资料,您可以一直按住F10键暂停脚本‘)
42         time.sleep(3)
43         qqWindow.SetActive()
44         time.sleep(0.5)
45         #确保群里第一个成员可见在最上面
46         left, top, right, bottom = list.BoundingRectangle
47         while allListItems[0].BoundingRectangle[1] < top:
48             automation.Win32API.MouseClick(right - 5, top + 20)
49             time.sleep(0.5)
50         for listItem in allListItems:
51             if listItem.ControlType == automation.ControlType.ListItemControl:
52                 if automation.Win32API.IsKeyPressed(automation.Keys.VK_F10):
53                     consoleWindow.SetActive()
54                     input(‘\n您暂停了脚本,按Enter继续\n‘)
55                     qqWindow.SetActive()
56                     time.sleep(0.5)
57                 listItem.Click()
58                 time.sleep(0.5)
59                 listItem.RightClick()
60                 menu = automation.MenuControl(searchDepth= 1, ClassName = ‘TXGuiFoundation‘)
61                 menuItems = menu.GetChildren()
62                 for menuItem in menuItems:
63                     if menuItem.Name == ‘查看资料‘:
64                         menuItem.Click()
65                         break
66                 automation.Logger.WriteLine(listItem.Name, automation.ConsoleColor.Green)
67                 automation.Logger.WriteLine(GetPersonDetail())
68                 listItem.Click()
69                 time.sleep(0.5)
70                 automation.Win32API.SendKeys(‘{Down}‘)
71
72
73 if __name__ == ‘__main__‘:
74     main()
75     input(‘press Enter to exit‘)

效果图

获取的到QQ群成员详细保存在脚本同一目录@AutomationLog.txt里

代码下载 https://github.com/yinkaisheng/Python-UIAutomation-for-Windows

时间: 2024-12-31 02:35:06

使用python UIAutomation从QQ2016(8.0)群界面获取所有群成员详细资料,的相关文章

Python黑帽编程 4.0 网络互连层攻击概述

Python黑帽编程 4.0 网络互连层攻击概述 是时候重新温习下下面这张图了. 图2 本章的内容核心包含上图中的网络层和传输层.TCP/IP是整个网络协议体系中的核心,因为从这里开始,数据传输从局域网迈向了广阔的互联网,我们的程序也有能力处理来自互联网的数据,可以直接对互联网上的主机进行攻击和测试. 还是老话,希望各位深入的学习协议,通过抓包工具练习数据包分析,通过实例理解协议.下面我们把本章涉及到的内容做简略的描述. 4.0.1 嗅探与嗅探器原理 嗅探是一个综合概念,涉及到我们之前讲到的第二

Apache Spark 2.2.0 中文文档 - 集群模式概述 | ApacheCN

集群模式概述 该文档给出了 Spark 如何在集群上运行.使之更容易来理解所涉及到的组件的简短概述.通过阅读 应用提交指南 来学习关于在集群上启动应用. 组件 Spark 应用在集群上作为独立的进程组来运行,在您的 main 程序中通过 SparkContext 来协调(称之为 driver 程序). 具体的说,为了运行在集群上,SparkContext 可以连接至几种类型的 Cluster Manager(既可以用 Spark 自己的 Standlone Cluster Manager,或者

买《Python数据分析师:从0基础到数据分析达人》专题视频课程送纸质图书

<Python从小白到大牛>纸质图书于2018年10月上市,为了答谢广大学员对智捷课堂以及关老师的支持,现购买51CTO学院([Python数据分析师:从0基础到数据分析达人]专题课程的学员送一本<Python从小白到大牛>纸质版图书. 学员购买视频后请于购买课程后10个工作日内申请赠书,过期视为放弃.注意:苹果支付购买,以及8折(含8折)一下活动购买不赠送图书.领取说明:加qq群:51CTO-关老师付费群 523714201 验证消息:用户名+订单号即可通过. 最好您在购买之前咨

Python源码剖析笔记0 ——C语言基础

python源码剖析笔记0--C语言基础回顾 要分析python源码,C语言的基础不能少,特别是指针和结构体等知识.这篇文章先回顾C语言基础,方便后续代码的阅读. 1 关于ELF文件 linux中的C编译得到的目标文件和可执行文件都是ELF格式的,可执行文件中以segment来划分,目标文件中,我们是以section划分.一个segment包含一个或多个section,通过readelf命令可以看到完整的section和segment信息.看一个栗子: char pear[40]; static

Hadoop 2.6.0 HA高可用集群配置详解

1 Hadoop HA架构详解 1.1 HDFS HA背景 HDFS集群中NameNode 存在单点故障(SPOF).对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用,直到NameNode 重新启动. 影响HDFS集群不可用主要包括以下两种情况:一是NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用:二是计划内的NameNode节点软件或硬件升级,导致集群在短时间内不可用. 为了解决上述问题,Hadoop给出了HDFS的高

Hadoop2.0集群、Hbase集群、Zookeeper集群、Hive工具、Sqoop工具、Flume工具搭建总结

实验开发环境所用软件: [[email protected] local]# ll total 320576 -rw-r--r-- 1 root root 52550402 Mar 6 10:34 apache-flume-1.6.0-bin.tar.gz drwxr-xr-x 7 root root 4096 Jul 15 10:46 flume drwxr-xr-x. 11 root root 4096 Jul 10 21:04 hadoop -rw-r--r--. 1 root root

深度学习 GPU环境 Ubuntu 16.04 + Nvidia GTX 1080 + Python 3.6 + CUDA 9.0 + cuDNN 7.1 + TensorFlow 1.6 环境配置

本节详细说明一下深度学习环境配置,Ubuntu 16.04 + Nvidia GTX 1080 + Python 3.6 + CUDA 9.0 + cuDNN 7.1 + TensorFlow 1.6. Python 3.6 首先安装 Python 3.6,这里使用 Anaconda 3 来安装,下载地址:https://www.anaconda.com/download/#linux,点击 Download 按钮下载即可,这里下载的是 Anaconda 3-5.1 版本,如果下载速度过慢可以选

redis5.0以后版本 搭建集群

redis5.0以前为什么要用ruby? 因为在redis/src中有一个文件redis-trib.rb,是用Ruby写的,用来搭建redis集群(redis3.0版本时才开始支持集群),所以想要搭建redis集群需要有一个能执行.rb的Ruby运行环境. 同时ruby的运行又依赖redis.gem这个文件. 所以在5.0以前 集群的搭建需要 安装ruby环境,下载gem文件. redis5.0以后的版本集群搭建,不需要借助rubyhttps://blog.csdn.net/qq_2521582

Cloudera Hadoop 4 实战课程(Hadoop 2.0、集群界面化管理、电商在线查询+日志离线分析)

课程大纲及内容简介: 每节课约35分钟,共不下40讲 第一章(11讲) ·分布式和传统单机模式 ·Hadoop背景和工作原理 ·Mapreduce工作原理剖析 ·第二代MR--YARN原理剖析 ·Cloudera Manager 4.1.2安装 ·Cloudera Hadoop 4.1.2 安装 ·CM下集群管理一 ·CM下集群管理二 ·Hadoop fs 命令详解 ·cloudera manager管理集群·cloudera manager下集群高级管理 第二章(约10讲) ·Hive数据表和