自动化工具之二:win32gui

本文详细介绍了如何使用Win32gui进行自动化操作,包括查找窗体句柄、获取窗口位置、枚举子窗口句柄等关键步骤,是进行自动化测试和操作的重要参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自动化工具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)

 

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

转载于:https://www.cnblogs.com/yfacesclub/p/10113053.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值