自动化工具win32gui

一、下载安装win32gui

二、Win32gui的使用

1.查找窗体句柄

我们知道的所有空间其实就是窗体,所有的窗口都有一个独立的句柄,要操作任意一个窗体,你都需要找到这个窗体的句柄,这里,我们就可以用到FindWindow函数和FindWindowEx函数。在pywin32中,他们都属于win32gui的模块;

(1)使用FindWindow函数,列出所有的顶级窗口

FindWindow(lpClassName=None, lpWindowName=None):

描述:自顶层窗口(也就是桌面)开始搜索条件匹配的窗体,并返回这个窗体的句柄。不搜索子窗口、不区分大小写。找不到就返回0

参数:

lpClassName:字符型,是窗体类名,这个可以在Spy++里找到。

lpWindowName:字符型,是窗口标题,也就是标题栏上你能看见的那个标题。

说明:这个函数我们仅能用来找主窗口。

(2)使用FindWindowEx函数,列出所有的顶级窗口

FindWindowEx(hwndParent=0, hwndChildAfter=0, lpszClass=None, lpszWindow=None);

描述:搜索类名和窗体名匹配的窗体,并返回这个窗体的句柄。不区分大小写,找不到就返回0。

参数:

hwndParent:若不为0,则搜索句柄为hwndParent窗体的子窗体。

hwndChildAfter:若不为0,则按照z-index的顺序从hwndChildAfter向后开始搜索子窗体,否则从第一个子窗体开始搜索。

lpClassName:字符型,是窗体的类名,这个可以在Spy++里找到。

lpWindowName:字符型,是窗口名,也就是标题栏上你能看见的那个标题。

说明:找到了主窗口以后就靠它来定位子窗体啦。

(3)获取窗口位置

例如:

(4)获取某个句柄的类名和标题

title = win32gui.GetWindowText(handle)     

clsname = win32gui.GetClassName(handle)

(5)枚举所有所有子窗口句柄

hwndChildList = []

win32gui.EnumChildWindows(hwnd1, lambda hwnd, param: param.append(hwnd), hwndChildList)

aa = hwndChildList

(6)获得窗口的菜单句柄

subHandle = win32gui.FindWindowEx(handle, 0, "EDIT", None)

menuHandle = win32gui.GetMenu(subHandle)

(7)获得子菜单或下拉菜单句柄

# 参数:菜单句柄 子菜单索引号

subMenuHandle = win32gui.GetSubMenu(menuHandle, 0)

未完后续补充.......

自动化工具之二:win32gui的更多相关文章

  1. Ansible批量自动化管理工具(二)

    Ansible批量自动化管理工具(二) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...

  2. Android自动化测试探索(二)常用自动化工具

    Android常用自动化工具 ADB - 是Google提供的为Android编写UI测试用例的自动化工具, Android开发/测试人员不可替代的强大工具 uiautomator - 是Google ...

  3. Node.js前端自动化工具:gulp

    前端自动化工具 -- gulp 使用简介 gulp是基于流的前端自动化构建工具. 之前也谈到了 grunt的用法,grunt其实就是配置+配置的形式. 而gulp呢,是基于stream流的形式,也就是 ...

  4. 简单的抓取淘宝关键字信息、图片的Python爬虫|Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)

    Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇) 淘宝改字段,Bugfix,查看https://github.com/hunterhug/taobaoscrapy.git 由于Gith ...

  5. Ansible运维自动化工具19个常用模块使用实例【转】

    一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...

  6. vue 组件开发、vue自动化工具、axios使用与router的使用(3)

    一. 组件化开发 1.1 组件[component] 在网页中实现一个功能,需要使用html定义功能的内容结构,使用css声明功能的外观样式,还要使用js定义功能的特效,因此就产生了一个功能先关的代码 ...

  7. python自动化工具之pywinauto(一个实例)结合pyuserinput

    以下是pywinauto使用指南.这个窗口句柄可以在Spy++中查看 (Microsoft Spy++(查看窗口句柄) 10.00.30319 官方最新绿色版) python自动化工具之pywinau ...

  8. 自动化工具之三:pywinauto

    Python自动化工具:pywinauto 一.pywinauto的安装 (1)安装命令 pip install -U pywinauto/pip3 install -U pywinauto (2)验 ...

  9. 三: vue组件开发及自动化工具vue-cli

    一: 组件化开发 1 组件 1: 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 2: 什么是组件 而在网页 ...

随机推荐

  1. sklearn数据预处理

    一.standardization 之所以标准化的原因是,如果数据集中的某个特征的取值不服从标准的正太分布,则性能就会变得很差 ①函数scale提供了快速和简单的方法在单个数组形式的数据集上来执行标准 ...

  2. Failed to resolve: com.android.support:appcompat-v7:27.0.1问题解决

    今天,在毫无征兆的情况下AndroidStudio又抽风了,搞了大半天,试了网上众多方案,终于解决了这个问题.咱们一步一步来 第一步:这是最开始的bug Error:Failed to resolve ...

  3. wchar_t和char转化

    char* WcharToChar(const wchar_t* wp) { char *m_char; int len = WideCharToMultiByte(CP_ACP, 0, wp, wc ...

  4. Docker详解

    一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docke ...

  5. day_11 py 名片管理系统

    '' 2018-4-23 11:42:29 名片管理系统 字典与列表的结合 ''' #1.打印功能提示 print("="*50) print(" 1.添加一个新的名片& ...

  6. D - Equation Again

    This problem's author is too lazy to write the problem description, so he only give you a equation l ...

  7. 8月10日CSS总结

    1.三角形光标转换 CSS: .one{ width: 0;­­ height: 0; border-top: 100px solid #000; border-right:100px solid t ...

  8. jenkins管理

    1.1 重启,重载,关闭 http://10.0.0.51:8080/jenkins/restart     重启 http://10.0.0.51:8080/jenkins/reload       ...

  9. 堆的C语言实现

    在C++中,可以通过std::priority_queue来使用堆. 堆的C语言实现: heap.c /** @file heap.c * @brief 堆,默认为小根堆,即堆顶为最小. */ #in ...

  10. 2018ACM-ICPC南京区域赛M---Mediocre String Problem【exKMP】【Manacher】

    这题就单独写个题解吧.想了两天了,刚刚问了一个大佬思路基本上有了. 题意: 一个串$S$,一个串$T$,在$S$中选一段子串$S[i,j]$,在$T$中选一段前缀$T[1,k]$使得$S[i,j]T[ ...