dogtail的使用方法(四)——实现鼠标和键盘的操作
dogtail自带鼠标和键盘的操作方法,使用方法如下:
环境配置
安装dogtail:
sudo pip3 install dogtail
导入包
dogtail中,控制鼠标键盘的包是在rawinput里面:
from dogtail import rawinput
点击
rawinput.click(x, y, button=1, check=True)
1.x, y 为所要点击的坐标
2.button为鼠标左右键,1代表左键,2代表滚轮,3代表右键,默认参数,可以不传
3.check为坐标检查,如果为负数,会抛异常,默认参数,可以不传
双击
rawinput.doubleClick(x, y, button=1, check=True)
点击(按住不释放)
rawinput.press(x, y, button=1, check=True)
鼠标释放
rawinput.release(x, y, button=1, check=True)
鼠标移动(绝对位置)
rawinput.absoluteMotion(x, y, mouseDelay=None, check=True)
1.x, y 为所要移动到的坐标
2.mouseDelay为鼠标移动的延迟时间,默认参数,可以不传
3.check为坐标检查,如果为负数,会抛异常,默认参数,可以不传
鼠标移动(相对位置)
rawinput.relativeMotion(x, y, mouseDelay=None)
1.x, y 为所要移动的相对位置,比如从当前位置移动100,100,注意和绝对位置的区别
2.mouseDelay为鼠标移动的延迟时间,默认参数,可以不传
拖拽
rawinput.drag(fromXY, toXY, button=1, check=True)
1.fromXY 起始位置的坐标(x, y )
2.toXY 目标位置的坐标(x, y )
这个拖拽实际为绝对位置的拖拽,rawinput没有提供相对位置的拖拽,但是我们可以通过:
rawinput.press(x, y )
rawinput.relativeMotion(x, y)
rawinput.release(x, y)
进行二次封装实现相对位置的拖拽。
输入文本
rawinput.typeText(string)
传入要输入的字符串即可
注意: 不支持中文输入,经过分析源码,输入的功能实际是遍历字符串里面的每一个字符然后调用的pressKey,也就是敲键盘的方式实现输入,所以中文输入的bug无解。在UOS上使用这个方法输入中文的时候,系统直接崩溃(注销)。
点击键盘
rawinput.pressKey(keyName)
keyName = {
'enter': 'Return',
'esc': 'Escape',
'alt': 'Alt_L',
'control': 'Control_L',
'ctrl': 'Control_L',
'shift': 'Shift_L',
'del': 'Delete',
'ins': 'Insert',
'pageup': 'Page_Up',
'pagedown': 'Page_Down',
' ': 'space',
'\t': 'Tab',
'\n': 'Return'
}
组合按键
rawinput.keyCombo(comboString)
comboString组合按键,比如:
'<Control><Alt>p'
'<Control><Shift>PageUp'
'<Control>q'
本文来自博客园,作者:mikigo,转载请注明原文链接:https://www.cnblogs.com/mikigo/p/14154939.html