zoukankan      html  css  js  c++  java
  • 自动化工具之二:win32gui

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

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

  • 相关阅读:
    网红面试题['1','2','3'].map(parseInt)解析
    微信小程序——评论点赞功能
    微信小程序背景音频播放在6.7.2微信版本兼容
    微信小程序之音频播放
    jquery判断是否为空
    自定义单选按钮
    AJAX防重复提交
    dedecms 开发问题总结及解决方案
    程序员面试被问到“三次握手,四次挥手”怎么办?
    问题:The project cannot be built until build path errors are resolved
  • 原文地址:https://www.cnblogs.com/yfacesclub/p/10113053.html
Copyright © 2011-2022 走看看