一个好玩的鼠标键盘库——pyautogui

前言

众所周知,我们一直通过键盘、鼠标来编写程序,那么我们是否能通过程序来操作鼠标和键盘呢?我可以很负责任的告诉你,有!

So欢迎我们今天的主角:pyautogui!!☺

并且用它还能实现一些有趣的功能。


准备工作

首先,你需要有一个编辑器,你可以用号称宇宙第一的编辑器(vscode)、或者pycharm也可以。然后在终端中或者是cmd(windows电脑)中输入以下命令:

1
pip install pyautogui

来导入这个库。

然后呢,然后~~就大功告成了!哈哈哈,开玩笑,如果真是这样,那咱们这个教程还真是划水^_^。


基础操作

==获取当前屏幕分辨率==

1
pyautogui.size()

==获取当前鼠标位置==

1
pyautogui.position()

==判断一个点是否在屏幕中==

1
2
3
x = 1080
y = 1920
print(pyautogui.onScreen(x, y))

==pyautogui给出的防护措施==

1
2
3
4
# 在每次调用pyautogui函数后暂停2.5秒
pyautogui.PAUSE = 2.5
# 在紧急情况下将鼠标移动到左上角可终止程序(默认开启)
pyautogui.FAILSAFE = True

OK,基础部分到此结束!


键盘操作

==输入文字==

1
2
3
text = "Hello World!"
seconds = 0.1
pyautogui.typewrite(message=text, interval=seconds)

怎么样,有没有被打字机特效所惊艳☺

其中:

message:为要输入的文字(只能为英文)

interval:每个文字输入间隔

==按下、释放快捷键==

1
2
pyautogui.keyDown("ctrl")
pyautogui.keyUp("ctrl")

还可以一步到位

1
pyautogui.hotkey("ctrl", 'v')

提示:

1
pyautogui.press('v')

同样也可以达到这个效果(而且不用释放)

OK,键盘操作到此结束!


鼠标操作

==移动鼠标==

1
2
3
4
x = 500
y = 500
seconds = 2
pyautogui.moveTo(x, y, duration=seconds)

其中:

x, y : 屏幕坐标

duration : 从当前移动到指定位置的时间(seconds越大,时间越长)如不填写,则瞬移到制定位置。

==拖曳鼠标==

1
2
3
4
x = 500
y = 500
num_seconds = 2
pyautogui.dragTo(x, y, button="left", duration=num_seconds)

其中:

duration : 同上

button : 有三个参数,分别是left(鼠标左键),middle(鼠标中键),right(鼠标右键)

==鼠标单击==

1
2
3
4
5
x = 700
y = 700
clicks = 2
between_clicks = 1
pyautogui.click(x=x, y=y, clicks=clicks, interval=between_clicks, button="left")

其中:

clicks : 鼠标点击次数

interval : 每次点击间隔

button : 同上

==鼠标双击==

1
pyautogui.doubleClick()

==鼠标滚动==

1
2
3
x = 350
y = 200
pyautogui.scroll(clicks=-150, x=x, y=y)

其中:

clicks : 正数表示向上滚动指定格,负数表示向下滚动指定格

x, y : 表示先移动到指定位置再滚动

至此,鼠标操作结束!


其他操作

另外,pyautogui还贴心地为我们准备了其他的操作

==提示框==

1
2
a = pyautogui.alert("HELLO")
print(a)

其中:

点击“确定”将返回字符串“OK”

1
2
a = pyautogui.confirm("Are you Sure?")
print(a)

其中:

点击“确定”将返回字符串“OK”

点击“取消”将返回字符串“Cancel”

1
2
a = pyautogui.prompt("INPUT")
print(a)

其中:

输入内容后点击“OK”将会返回输入的内容

点击“Cancel”将会返回字符串“None”

至此,其他操作结束!