xbot.win32

概述

win32接口主要分为四个类型

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

详情

get

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

get(title=None, class_name=None, use_wildcard=False)

参数

  • title:指定的窗口标题

  • class_name:指定的窗口类名

  • use_wildcard:是否使用通配符进行匹配, 默认值为False使用模糊匹配

返回值

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

示例1

获取标题包含 hello 的窗口对象

from xbot import win32

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

示例2

使用通配符匹配,获取标题以 hello 开头的窗口对象

from xbot import win32

def main(args):
    wnd = win32.get('hello*', None, True, False)

get_by_handle

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

get_by_handle(handle=None)

参数

  • handle:指定的窗口句柄获,如果不传默认获取当前激活的窗口

返回值

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

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

from xbot import win32

def main(args):
    wnd = win32.get_by_handle(0x01014A)

get_by_selector

通过选择器获取窗口对象

get_by_selector(selector=None)

参数

selector:要查找的选择器,支持以下格式:

  • 选择器名称:str 类型

  • 选择器对象:Selector 类型

返回值

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

示例1

获取和选择器 窗格 匹配的窗口对象

from xbot import win32

def main(args):
    wnd = win32.get_by_selector("窗格")

get_desktop

获取桌面对象

get_desktop()

参数

返回值

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

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

from xbot import win32

def main(args):
    wnd = win32.get_desktop()
minimize_all

最小化全部窗口

minimize_all()

参数

返回值

实列1:最小化全部窗口

from xbot import win32

def main(args):
    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再继续往后执行

from xbot import win32

def main(args):
    win32.mouse_move(100, 100, 'screen', 'slow', 1)

send_keys

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

send_keys(keys='', send_key_delay=50, hardware_driver_input=Fals, delay_after=1)

参数

  • keys:要模拟输入的键盘按键

  • send_key_delay:两次按键之间的时间间隔,默认为50ms(毫秒)

  • hardware_driver_input:是否通过硬件驱动的方式输入

  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值

示例1

模拟键盘输入 helloword

from xbot import win32

def main(args):
    win32.send_keys('helloword{enter}', 5, False, 1)

实列2

模拟键盘进行回车操作

from xbot import win32

def main(args):
    win32.send_keys('{enter}', 5 ,1)

send_keys_by_driver

通过驱动模拟按键给当前激活窗口发送文本(只支持键盘上的可见字符)

send_keys_by_driver(text: str, delay_after=1)

参数

  • text:需要填写到win32输入框中的文本内容。驱动模拟按键输入只支持ASCII表上的可见字符:'-!"#$%&()*,./:;?@[]^_`{|}~+<=>0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ。

  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值

mouse_click

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

mouse_click(button='left', click_type='click', keys='none', delay_after=1)

参数

  • button:要点击的鼠标按键, 默认为左键

  • 'left':鼠标左键

  • 'right':鼠标右键

  • click_type:鼠标按键的点击方式, 如单击、双击等, 默认为单击

  • 'click':鼠标单击

  • 'dbclick':鼠标双击

  • 'down':鼠标按键按下

  • 'up':鼠标按键弹起

  • keys:点击鼠标时的键盘辅助按钮,可以为空,默认为空

  • 'none':无键盘辅助按钮

  • 'alt':使用alt键作为辅助按键

  • 'ctrl':使用ctrl键作为辅助按键

  • 'shift':使用shift键作为辅助按键

  • 'win':使用win(窗口)键作为辅助按键

  • delay_after:执行成功后延迟时间, 默认延迟1s

返回值

示例1

按下键盘 Alt 键然后双击鼠标左键

from xbot import win32

def main(args):
    win32.mouse_click('left', 'dbclick', 'alt', 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 次

from xbot import win32

def main(args):
    win32.mouse_wheel('down', 3, 'alt', 1)

get_mouse_position

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

get_mouse_position(relative_to='screen')

参数

  • relative_to, 鼠标滚轮滚动方向, 默认往下滚动

  • 'screen':相对于桌面的位置

  • 'currentactivatedwindow':相对于当前选中(激活)窗口的位置

返回值

  • tuple:返回一组坐标值

实列1

获取鼠标相对于桌面的坐标

from xbot import win32

def main(args):
    position = win32.get_mouse_position('screen')

exists

判断窗口是否存在

exists(window)

参数

  • window:Win32Window对象

返回值

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

示例1

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

import xbot

def main(args):
    wnd = xbot.win32.get('新建文本')
    is_exists = xbot.win32.exists(wnd)

manual_motion_on

开启模拟真人操作,一次对多个指令用模拟真人的操作习惯运行(从开启到结束区间内的指令)

manual_motion_on(motion_move=True, motion_click=True)

参数

  • motion_move:模拟真人按随机路线和速度移动鼠标, 默认为 True
  • motion_click:模拟真人在随机位置点击元素, 默认为 True

返回值

示例1

import xbot

def main(args):
    xbot.win32.manual_motion_on(True,True)
    win = xbot.win32.get_active()
    win.find('test').click()
    xbot.win32.manual_motion_off()
    pass

示例2

  • 如有停顿需求,可以在该指令前添加sleep等待
import xbot

def main(args):
    sleep(2)
    xbot.win32.manual_motion_on(True,True)
    win = xbot.win32.get_active()
    win.find('test').click()
    xbot.win32.manual_motion_off()
    pass

manual_motion_off

结束模拟真人操作

manual_motion_off()

参数

返回值

示例

import xbot

def main(args):
    xbot.win32.manual_motion_on(True,True)
    win = xbot.win32.get_active()
    win.find('test').click()
    xbot.win32.manual_motion_off()
    pass
问题没有解决?去社区提问 all right reserved,powered by Gitbook

results matching ""

    No results matching ""