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)

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

  • 相关阅读:
    一步一步学grails:7 MVC
    虚拟机安装CentOS7
    虚拟机安装windows sever2008
    微信console
    centOS7常用操作命令
    lr事务
    2.0通信之调用ADO.NET Data Services(数据服务)
    Silverlight应用程序中如何获取ASP.NET页面参数
    2.0网页之可脚本化, 与DOM的交互, 与JavaScript的交互
    2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题, 本地化(多语言), 响应鼠标双击事件
  • 原文地址:https://www.cnblogs.com/yfacesclub/p/10113053.html
Copyright © 2011-2022 走看看