pywin32的一系列用法

一.获取句柄的两种方法:

  1. handle = win32gui.FindWindow(classname, title)
  2. handle = win32gui.GetForegroundWindow()--------------<获取所有窗口最上面的句柄>

二.获取字句柄的方法:

  1. hwnd = win32gui.FindWindowEx(parent_handle, handle_brother, classname, title)
  2. 获取父句柄的所有字句柄
    hwnd_childLists = []
    win32gui.EnumChildWindows(parent_handle, lambda hwnd, param: param.append(hwnd), hwnd_childLists)

三.获取句柄后的一系列操作

  • 根据句柄获取句柄所对应的的窗口的大小
    • left,top,right,bottom = win32gui.GetWindowRect(handle)
  • 获取句柄对应的某个类名和标题
    • title = win32gui.GetWindowsText(handle)
    • class_name = win32gui.GetClassName(handle)
  • 根据句柄获取edit控件的长度

 

def get_edit(handle):
    '''
    获取edit输入框里的数据
    :param handle: 输入框的句柄
    :return: 返回输入框里的数据
    '''
    # 获取edit控件文本长度
    length = win32gui.SendMessage(handle, win32con.WM_GETTEXTLENGTH) + 1
    buf = win32gui.PyMakeBuffer(length)
    # 发送获取文本请求
    win32api.SendMessage(handle, win32con.WM_GETTEXT, length, buf)
    # 进行文本读取
    address, length = win32gui.PyGetBufferAddressAndLen(buf[:-1])
    text = win32gui.PyGetString(address, length)
    return text
  • 虚拟鼠标点击按钮(或者回车)
    • 根据句柄进行回车 
      • win32gui.PostMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) win32gui.PostMessage(handle, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
    • 根据句柄进行点击
      # win32gui.PostMessage(8720594, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, 0)
      # win32gui.PostMessage(8720594, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, 0)
  • 获取显示器屏幕大小
    • width = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)   
    • height = win32api.GetSystemMetrics(win32con.SM_CYSCREEN)
  • 点击按钮
    • win32gui.SendMessage(handle, win32con.BM_CLICK, 0, 0)
  • 关闭窗口
    • win32gui.PostMessage(handle, win32con.WM_CLOSE, 0, 0)
  • 通过句柄填充输入框的数据
    • win32gui.SendMessage(account_handle, win32con.WM_SETTEXT, 0, account)
  • 获取弹窗里的文字
    • handle = win32gui.FindWindow(classname, 窗体title)  # 获取弹窗的句柄
    • text = handle.GetDigItemText(0xFFFF)  # 获取弹窗里的消息文字
  • 窗体最小化
    • win32gui.CloseWIndow(handle)
  • 窗体最大化
    • win32gui.ShowWindow(hwnd, win32con.SW_MAXIMIZE)

 

 

 

 

你可能感兴趣的:(pywin32的一系列用法)