zoukankan      html  css  js  c++  java
  • python和pywin32实现窗口查找、遍历和点击

    Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。

    1.通过类名和标题查找窗口句柄,并获得窗口位置和大小

    import win32gui
    import win32api
    classname = "MozillaWindowClass"
    titlename = "百度一下,你就知道 - Mozilla Firefox"
    #获取句柄
    hwnd = win32gui.FindWindow(classname, titlename)
    #获取窗口左上角和右下角坐标
    left, top, right, bottom = win32gui.GetWindowRect(hwnd)

    2.通过父句柄获取子句柄

    def get_child_windows(parent):        
        '''     
        获得parent的所有子窗口句柄
         返回子窗口句柄列表
         '''     
        if not parent:         
            return      
        hwndChildList = []     
        win32gui.EnumChildWindows(parent, lambda hwnd, param: param.append(hwnd),  hwndChildList)          
        return hwndChildList 
    
    #获取某个句柄的类名和标题
    title = win32gui.GetWindowText(hwnd)     
    clsname = win32gui.GetClassName(hwnd)     
    
    #获取父句柄hwnd类名为clsname的子句柄
    hwnd1= win32gui.FindWindowEx(hwnd, None, clsname, None)

    3.鼠标定位与点击

    #鼠标定位到(30,50)
    win32api.SetCursorPos([30,150])
    #执行左单键击,若需要双击则延时几毫秒再点击一次即可
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    #右键单击
    win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)

    4.发送回车键

    win32api.keybd_event(13,0,0,0)
    win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0)

    5.关闭窗口

    win32gui.PostMessage(win32lib.findWindow(classname, titlename), win32con.WM_CLOSE, 0, 0)
  • 相关阅读:
    php中&符号什么意思
    lucene 笔记
    yslow详细解释
    sqlserver中如何实现时间按月,日,小时分组查询
    用Lucene.net对数据库建立索引及搜索2
    lucene.net索引文件存储简析
    C #中的几个线程同步对象方法 1
    lucene 全文检索简介
    判断jquery对象是否可见
    Lucene.net多字段(Fields)、多索引目录(IndexSearcher)搜索
  • 原文地址:https://www.cnblogs.com/zoro-robin/p/5591185.html
Copyright © 2011-2022 走看看