添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
曾经爱过的西装  ·  Vim 7.3 on Ubuntu ...·  1 年前    · 
想出国的烈马  ·  滴滴开源 ...·  1 年前    · 

二、 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)

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

关于文章迁CSDN https://blog.csdn.net/weixin_40960688