【笔记】Python3控制键鼠

前言

Python3代码实现控制键鼠

下载依赖

1
pip install pyautogui

引入依赖

1
import pyautogui

控制鼠标指针

查看指针当前位置坐标

1
pyautogui.position()

移动鼠标指针位置

<x>:鼠标指针横坐标
<y>:鼠标指针纵坐标
<num>:执行一次控制所用的时间,单位秒,默认为0.1

1
pyautogui.moveTo(<x>, <y>, <num>)

鼠标左键单机

1
pyautogui.leftClick()
1
pyautogui.click()

鼠标右键单机

1
pyautogui.rightClick()
1
pyautogui.click(button='right')

鼠标左键双击

1
pyautogui.doubleClick()

鼠标拖拽

<x>:拖拽终点横坐标
<y>:拖拽终点纵坐标
left:使用左键拖拽

1
pyautogui.dragTo(<x>, <y>, <num>, button='left')

控制键盘按键

控制键盘输入

<value>:想要模拟的键盘按键(数字、字母或特殊按键)

1
pyautogui.typewrite("<value>", <num>)

执行热键

  • 可以有多个参数
1
2
3
pyautogui.hotkey('command', 'c')

pyautogui.hotkey('command', 'shift', 't')

按键代码

  • MAC列未标注的按键为与WIN列相同,或不存在
模拟的按键(WIN) 模拟的按键(MAC) 代码
回车键 - enter\n
- return键 return\n
esc键 - esc
左右shift键 - shiftleftshiftright
左右alt键 左右option键 altleftaltright
左右ctrl键 - ctrlleftctrlright
tab键 - tab\t
backspace键 - backspace
- delete键 delete
翻页键 - pageuppagedown
开头结尾键 - homeend
F1~F12键 - f1~`f12`
pause键 - pause
锁定键 - capslocknumlockscrolllock
插入键 - insert
截屏键 - printscreen
左右win键 - winleftwinright
- command键 command

控制滚轮

<num>:小于0表示向下滚动

1
pyautogui.scroll(<num>)

截屏

截取当前屏幕

1
image = pyautogui.screenshot()

获取截屏中指定位置的RGBA颜色

<x>:横坐标
<y>:纵坐标

1
rgba = image.getpixel((<x>, <y>))

配合鼠标获取鼠标当前位置的颜色

1
2
x, y = pyautogui.position()
rgba = image.getpixel((<x>, <y>))

预览截屏

1
image.show()

保存截屏为文件

<filename>.png:文件名

1
image.save("<filename>.png")

踩坑

  • 报错:TypeError: '<' not supported between instances of 'str' and 'int'

原因

  • pyautogui包的BUG

解决问题

  • 手动修改源码/opt/homebrew/lib/python3.11/site-packages/pyscreeze/__init__.py第527行,将if tuple(PIL__version__) < (6, 2, 1):改为if False:
1
if tuple(PIL__version__) < (6, 2, 1):

完成

参考文献

CSDN——哈喽哈嘿哈
知乎——阿牛
CSDN文库
CSDN——IT技术学习
知乎——一人二狗流浪记