pyautogui入门学习之鼠标键盘操作

1 安装

pip install pyautogui

2 学习使用

2.1 加载模块

import pyautogui

2.2 获取信息类

电脑屏幕的左上角是位置(0,0),向右X坐标增加,向下Y坐标增加

# 获取屏幕尺寸
screenWidth, screenHeight = pyautogui.size()

# 获取鼠标当前位置
currentMouseX, currentMouseY = pyautogui.position()

onScreen()函数来检查XY坐标是否在屏幕上,如果在屏幕上返回True

In [1]: import pyautogui

In [2]: pyautogui.onScreen(0, 0)
Out[2]: True

In [3]: pyautogui.onScreen(0, -1)
Out[3]: False

2.3 进行操作类

2.3.1 鼠标

知识点:

import pyautogui

# 函数将鼠标立即移动到屏幕的指定位置:x, y为坐标, duration指定所需秒数
pyautogui.moveTo(x=None, y=None, duration=0.0)

# 函数相对于当前的位置移动鼠标
pyautogui.moveRel(xOffset=None, yOffset=None, duration=0.0)

# 在相应位置点击鼠标, clicks为点击次数, interval为时间间隔, button属性可以有:left\middle\right
pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button="left")

# 按下鼠标按键
pyautogui.mouseDown(x=None, y=None, button="left", duration=0.0)

# 释放鼠标按键
pyautogui.mouseUp(x=None, y=None, button="left", duration=0.0)

# 执行双击鼠标左键
pyautogui.doubleClick(x=None, y=None, interval=0.0, button="left", duration=0.0)

# 执行双击右键
pyautogui.rightClick(x=None, y=None, interval=0.0, duration=0.0)

# 执行双击中键
pyautogui.middleClick(x=None, y=None, interval=0.0, duration=0.0)

# 将鼠标拖动到一个新的位置
pyautogui.dragTo(x=None, y=None, duration=0.0, button="left")

# 将鼠标拖动到相对当前位置的位置
pyautogui.dragRel(xOffset=0, yOffset=0, duration=0.0, button="left")

# 滚动鼠标, clicks为滚动像素
pyautogui.scroll(clicks=100, x=None, y=None)

缓动/渐变(Tween / Easing)函数:

缓动/渐变函数的作用是让光标的移动更炫。如果你不需要用到的话,你可以忽略这些。

缓动/渐变函数可以改变光标移动过程的速度和方向。通常鼠标是匀速直线运动,这就是线性缓动/渐变函数。PyAutoGUI有30种缓动/渐变函数,可以通过pyautogui.ease*?查看。其中,pyautogui.easeInQuad()函数可以用于moveTo()moveRel()dragTo()dragRel()函数,光标移动呈现先慢后快的效果,整个过程的时间还是和原来一样。而pyautogui.easeOutQuad函数的效果相反:光标开始移动很快,然后慢慢减速。pyautogui.easeOutElastic是弹簧效果,首先越过终点,然后再反弹回来。例如:

import pyautogui

# 开始很慢,不断加速
pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad)

# 开始很快,不断减速
pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)

# 开始和结束都快,中间比较慢
pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad)

# 一步一徘徊前进
pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce)

# 徘徊幅度更大,甚至超过起点和终点
pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic)

实践运用:

import pyautogui

# 获取屏幕尺寸
screenWidth, screenHeight = pyautogui.size()

# 鼠标移动到屏幕中心
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

# 将鼠标移动到固定位置
pyautogui.moveTo(100, 100)

# 用 "1秒" 的时间移动到固定位置
pyautogui.moveTo(100, 200, duration=1)

# 将鼠标移动到相对当前 "下方100" 的位置
pyautogui.moveRel(0, 100)

# 鼠标左键拖拽到屏幕 "100,200" 的位置
pyautogui.dragTo(100, 200, button='left')

# 鼠标左键用 "2秒" 拖拽到屏幕 "300,400" 的位置
pyautogui.dragTo(300, 400, 2, button='left')

# 鼠标左键用 "2秒" 拖拽到相对当前 "右边30" 的位置
pyautogui.dragRel(30, 0, 2, button='left')

# 鼠标左键单击
pyautogui.click()

# 鼠标左键单击 "100,200" 位置
pyautogui.click(x=100, y=200)

# 鼠标左键双击
pyautogui.doubleClick()

# 鼠标左键三击
pyautogui.tripleClick()

# 鼠标右键单击
pyautogui.click(button='right')

# 鼠标右键单击
pyautogui.rightClick()

# 鼠标右键间隔0.25秒单击3次
pyautogui.click(button='right', clicks=3, interval=0.25)

# 鼠标左键放下
pyautogui.mouseDown()

# 鼠标左键抬起
pyautogui.mouseUp()

# 鼠标滚轮上滚10
pyautogui.scroll(10)

# 鼠标滚轮下滚10
pyautogui.scroll(-10)

2.3.2 键盘

知识点:

import pyautogui

# 输入字符串, interval为时间间隔
pyautogui.typewrite("message", interval=0.1)
# 按下某个键
pyautogui.keyDown("A")
# 松开某个键
pyautogui.keyUp("A")
# 一次完整的击键,前面两个函数的组合, presses为按键次数
pyautogui.press("B", presses=5, interval=0.2)
# 直接使用热键函数
pyautogui.hotkey('ctrl', 'a')

PyAutoGUI键盘表:

‘enter’(或‘return’ 或 ‘\n’)

回车

扫描二维码关注公众号,回复: 8988080 查看本文章

‘esc’

ESC键

‘shiftleft’, ‘shiftright’

左右SHIFT键

‘altleft’, ‘altright’

左右ALT键

‘ctrlleft’, ‘ctrlright’

左右CTRL键

‘tab’ (‘\t’)

TAB键

‘backspace’, ‘delete’

BACKSPACE 、DELETE键

‘pageup’, ‘pagedown’

PAGE UP 和 PAGE DOWN键

‘home’, ‘end’

HOME 和 END键

‘up’, ‘down’, ‘left’,‘right’

箭头键

‘f1’, ‘f2’, ‘f3’….

F1…….F12键

‘volumemute’, ‘volumedown’,‘volumeup’

有些键盘没有

‘pause’

PAUSE键

‘capslock’, ‘numlock’,‘scrolllock’

CAPS LOCK, NUM LOCK, 和 SCROLLLOCK 键

‘insert’

INS或INSERT键

‘printscreen’

PRTSC 或 PRINT SCREEN键

‘winleft’, ‘winright’

Win键

‘command’

Mac OS X command键

实践应用:

import pyautogui

# 输入一个字符串
pyautogui.typewrite('Hello world!')

# 每个字母间隔0.25秒输入一个字符串
pyautogui.typewrite('Hello world!', interval=0.25)

# 键入 "a", 然后敲击左方向键, 再键入 "b".
pyautogui.typewrite(['a', 'left', 'b'])

# 按键
pyautogui.press('esc')

# 连续按键
pyautogui.press(['left', 'left', 'left', 'left', 'left', 'left'])

# 键盘按下
pyautogui.keyDown('shift')

# 键盘释放
pyautogui.keyUp('shift')

# 热键按住ctrl的同时按下c
pyautogui.hotkey('ctrl', 'c')
发布了328 篇原创文章 · 获赞 170 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/apollo_miracle/article/details/103943559