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