概述

win32接口主要分为三个类型

  • 获取win32窗口对象:可通过句柄、标题、类名、选择器获取窗口对象
  • 获取桌面对象
  • 基础的窗口操作:鼠标滚动、鼠标移动、鼠标点击/双击等

    详情

    get

    通过标题或类名获取窗口对象,标题或类名默认使用模糊匹配

get(title=None, class_name=None, use_wildcard=False, *, timeout=5)
参数:

  • title:指定的窗口标题
  • class_name:指定的窗口类名
  • use_wildcard:是否使用通配符进行匹配, 默认值为False使用模糊匹配
  • timeout, 获取窗口对象超时时间, 默认值是5s, 如果超过改时间还未找到窗口在抛出 UIAError 的异常
    • 等于 0, 不等待
    • 大于 0, 按时间等待
    • 等于 -1, 一直等待

返回值:

  • Win32Window:返回获取到的窗口对象列表


    示例1:
    获取标题包含 hello 的窗口对象 ```python from xbot import win32

def main(args): wnd = win32.get(‘hello’)

  1. 示例2:<br />使用通配符匹配,获取标题以 _hello _开头的窗口对象
  2. ```python
  3. from xbot import win32
  4. def main(args):
  5. wnd = win32.get('hello*', None, True, False)

get_by_handle

通过窗口句柄获取窗口对象

get_by_handle(handle=None, *, timeout=5)
参数:

  • handle:指定的窗口句柄获,如果不传默认获取当前激活的窗口
  • timeout, 获取窗口对象超时时间, 默认值是5s, 如果超过改时间还未找到窗口在抛出 UIAError 的异常
    • 等于 0, 不等待
    • 大于 0, 按时间等待
    • 等于 -1, 一直等待

返回值:

  • Win32Window:返回获取到的窗口对象

示例1:获取句柄为 0x01014A 的窗口对象

  1. from xbot import win32
  2. def main(args):
  3. wnd = win32.get_by_handle(0x01014A)

get_by_selector

通过选择器获取窗口对象

get_by_selector(selector=None, *, timeout=5)
参数:

  • selector:要查找的选择器,支持以下格式:
    • 选择器名称:str类型
    • 选择器对象:Selector类型
  • timeout, 获取窗口对象超时时间, 默认值是5s, 如果超过改时间还未找到窗口在抛出 UIAError 的异常
    • 等于 0, 不等待
    • 大于 0, 按时间等待
    • 等于 -1, 一直等待


返回值:**

  • Win32Window:返回和选择器匹配的窗口对象

示例1:获取和选择器 窗格 匹配的窗口对象

  1. from xbot import win32
  2. def main(args):
  3. wnd = win32.get_by_selector("窗格")

get_desktop

获取桌面对象

get_desktop()
参数:

返回值:

  • Win32Window:返回获取到的桌面对象

实列1:获取电脑桌面对象

  1. from xbot import win32
  2. def main(args):
  3. wnd = win32.get_desktop()

minimize_all

最小化全部窗口

minimize_all()
参数:

返回值:

**
实列1:最小化全部窗口

  1. from xbot import win32
  2. def main(args):
  3. win32.minimize_all()

mouse_move

移动鼠标到指定位置

mouse_move(point_x:int, point_y:int, relative_to=’screen’, move_speed=’instant’, delay_after=1)
参数:

  • point_x:指定坐标的横坐标, 为整数
  • point_y:指定坐标的纵坐标, 为整数
  • relative_to:指定坐标位置的相对对象, 默认相对于桌面移动
    • ‘screen’:相对于桌面
    • ‘currentActivatedWindow’:相对于当前打开(激活)的窗口
    • ‘currentMousePosition’:相对于当前数据所在的位置
  • move_speed, 移动鼠标到指定坐标的速度, 默认瞬间移动到目标坐标
    • ‘instant’:瞬间
    • ‘fast’:快速
    • ‘middle’:中速
    • ‘slow’:慢速
  • delay_after:执行成功后延迟时间, 默认延迟1s**

返回值:

**
示例1:将鼠标慢速移动到相对于屏幕的 x:100, y:100 的坐标位置执行完成后延迟1s再继续往后执行

  1. from xbot import win32
  2. def main(args):
  3. win32.mouse_move(100, 100, 'screen', 'slow', 1)

mouse_move_by_anchor

移动鼠标到指定位置

mouse_move_by_anchor(rectangle, anchor=None, relative_to=’screen’, move_speed=’instant’, delay_after=1)
参数:

  • rectangle, 需要悬浮的目标矩形范围,格式为 (x, y, width, height)
  • anchor, 锚点位置,默认值为 (‘middleCenter’, 0, 0),表示悬浮在范围的中心,不偏移
  • relative_to:指定坐标位置的相对对象, 默认相对于桌面移动
    • ‘screen’:相对于桌面
    • ‘window’:相对于当前打开(激活)的窗口
    • ‘position’:相对于当前数据所在的位置
  • move_speed, 移动鼠标到指定坐标的速度, 默认瞬间移动到目标坐标
    • ‘instant’:瞬间
    • ‘fast’:快速
    • ‘middle’:中速
    • ‘slow’:慢速
  • delay_after:执行成功后延迟时间, 默认延迟1s**

返回值:

**
示例1:将鼠标慢速移动到相对于屏幕的目标矩形(0, 0, 200, 200)的中间位置执行完成后延迟1s再继续往后执行

  1. from xbot import win32
  2. def main(args):
  3. win32.mouse_move_by_ahchor((0, 0, 200, 200), ('middleCenter', 0, 0), 'screen', 'slow', 1)

send_keys

模拟键盘输入输入指定键盘按键, 可包含快捷键

send_keys(keys=’’, send_key_delay=50, hardware_driver_input=False, delay_after=1)
参数:

  • keys:要模拟输入的键盘按键
  • send_key_delay:两次按键之间的时间间隔,默认为50ms(毫秒)
  • hardware_driver_input:是否通过硬件驱动的方式输入
  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值:

**
示例1:模拟键盘输入 helloword

  1. from xbot import win32
  2. def main(args):
  3. win32.send_keys('helloword{enter}', 5, 1)

实列2:模拟键盘进行回车操作

  1. from xbot import win32
  2. def main(args):
  3. win32.send_keys('{enter}', 5 ,1)

mouse_click

模拟鼠标点击, 如鼠标左键单击、左键双击等

mouse_click(button=’left’, click_type=’click’, hardware_driver_click=False, keys=’none’, delay_after=1)
参数:

  • button:要点击的鼠标按键, 默认为左键
    • ‘left’:鼠标左键
    • ‘right’:鼠标右键
  • click_type:鼠标按键的点击方式, 如单击、双击等, 默认为单击
    • ‘click’:鼠标单击
    • ‘dbclick’:鼠标双击
    • ‘down’:鼠标按键按下
    • ‘up’:鼠标按键弹起
  • hardware_driver_input:是否通过硬件驱动的方式输入
  • keys:点击鼠标时的键盘辅助按钮,可以为空,默认为空
    • ‘none’:无键盘辅助按钮
    • ‘alt’:使用alt键作为辅助按键
    • ‘ctrl’:使用ctrl键作为辅助按键
    • ‘shift’:使用shift键作为辅助按键
    • ‘win’:使用win(窗口)键作为辅助按键
  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值:

**
示例1:相对于屏幕的目标矩形(0, 0, 200, 200)的中间位置然后双击鼠标左键

  1. from xbot import win32
  2. def main(args):
  3. win32.mouse_click('left', 'dbclick', 'alt', 1)

mouse_click_by_anchor

模拟鼠标点击, 如鼠标左键单击、左键双击等

mouse_click_by_anchor(rectangle, anchor=None, button=’left’, click_type=’click’, keys=’none’, hardware_driver_click=False, delay_after=1, move_mouse=True)
参数:

  • rectangle:需要点击的目标矩形范围,格式为 (x, y, width, height)
  • anchor, 锚点位置,默认值为 (‘middleCenter’, 0, 0),表示悬浮在范围的中心,不偏移
  • button:要点击的鼠标按键, 默认为左键
    • ‘left’:鼠标左键
    • ‘right’:鼠标右键
  • click_type:鼠标按键的点击方式, 如单击、双击等, 默认为单击
    • ‘click’:鼠标单击
    • ‘dbclick’:鼠标双击
    • ‘down’:鼠标按键按下
    • ‘up’:鼠标按键弹起
  • keys:点击鼠标时的键盘辅助按钮,可以为空,默认为空
    • ‘none’:无键盘辅助按钮
    • ‘alt’:使用alt键作为辅助按键
    • ‘ctrl’:使用ctrl键作为辅助按键
    • ‘shift’:使用shift键作为辅助按键
    • ‘win’:使用win(窗口)键作为辅助按键
  • hardware_driver_input:是否通过硬件驱动的方式输入
  • delay_after:执行成功后延迟时间, 默认延迟1s
  • move_mouse:是否显示鼠标移动轨迹, 默认为True,显示鼠标移动轨迹

返回值:

**
示例1:移动鼠标到相对于屏幕的目标矩形(0, 0, 200, 200)的中间位置按下键盘 Alt 键然后双击鼠标左键

  1. from xbot import win32
  2. def main(args):
  3. win32.mouse_click_by_anchor((0, 0, 200, 200), ('middleCenter', 0, 0), 'left', 'dbclick', 'alt', False, 1)


mouse_wheel

模拟鼠标滚轮滚动, 默认往下滚动

mouse_wheel(wheel_direction=’down’, wheel_times=1, keys=’none’, delay_after=1)
参数:

  • wheel_direction:鼠标滚轮滚动方向, 默认往下滚动
    • ‘up’:往上滚动鼠标滚轮
    • ‘down’:往下滚动鼠标滚轮
  • wheel_times:滚动鼠标滚轮次数,默认滚动1次
  • keys:滚动鼠标滚轮时的键盘辅助按钮,可以为空,默认为空
    • ‘none’:无键盘辅助按钮
    • ‘alt’:使用alt键作为辅助按钮
    • ‘ctrl’:使用 ctrl键作为辅助按钮
    • ‘shift’:使用shift键作为辅助按钮
    • ‘win’:使用win(窗口)键作为辅助按钮
  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值:

实列1:按住键盘 Alt 键然后往下滚动鼠标滚轮 3 次

  1. from xbot import win32
  2. def main(args):
  3. win32.mouse_wheel('down', 3, 'alt', 1)

get_mouse_position

获取鼠标相对于桌面/当前选中(激活)的窗的坐标位置

get_mouse_position(relative_to=’screen’)
参数:

  • relative_to, 鼠标滚轮滚动方向, 默认往下滚动
    • ‘screen’:相对于桌面的位置
    • ‘currentactivatedwindow’:相对于当前选中(激活)窗口的位置

返回值:

  • tuple:返回一组坐标值

实列1:获取鼠标相对于桌面的坐标

  1. from xbot import win32
  2. def main(args):
  3. position = win32.get_mouse_position('screen')

exists

判断窗口是否存在

exists(window)
参数:

  • window:Win32Window对象

返回值:

  • bool:返回窗口的存在窗台,存在返回True,否则返回False

示例1:
获取标题叫做 新建文本 的窗口对象并判断窗口是否存在

  1. import xbot
  2. def main(args):
  3. wnd = xbot.win32.get('新建文本')
  4. is_exists = xbot.win32.exists(wnd)

get_selected_text

获取当前激活窗口选中的文本

get_selected_text()
参数:

**

  • str:返回当前激活窗口选中的文本

示例1:
获取当前激活窗口选中的文本。

  1. from xbot import win32
  2. def main(args):
  3. s = win32.get_selected_text()

lock_screen

屏幕锁屏

lock_screen()
参数:

返回值:

示例1:
屏幕锁屏.

  1. from xbot import win32
  2. def main(args):
  3. win32.lock_screen()

unlock_screen

屏幕解锁

unlock_screen(user_name, password)
参数:

  • user_name:用户名
  • password:密码

返回值:

示例1:
用用户名”admin”\密码”123456”解锁屏幕

  1. from xbot import win32
  2. def main(args):
  3. win32.unlock('admin', '123456')

set_ime

设置指定窗口的输入法

set_ime(lang)
参数:

  • lang:语言名称,取值为“chinese”、“english”

返回值:

示例1:
设置当前激活窗口输入法为英文输入法

  1. from xbot import win32
  2. def main(args):
  3. win32.set_ime('english')

get_ime

获取当前激活窗口的输入法的中英文状态

get_ime()
参数:

返回值:

  • str:unknow:未知;english:英文输入状态;chinese:中文输入状态

示例1:
获取当前激活窗口的输入法的中英文输入状态

  1. from xbot import win32
  2. def main(args):
  3. ime = win32.get_ime()