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)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值