使用 Python 实现鼠标键盘自动化
本文演示了如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的, 因此执行以下命令进行安装:
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取****,电子书籍,以及课程的源代码!
QQ群:101677771
使用 pyautogui 模块控制鼠标的移动
Python 通过屏幕的坐标系统对鼠标指针进行追踪与控制. 假设你的屏幕分辨率为 1920X1080, 那么屏幕的坐标系统看起来是这样的:
-
size(): 用于获取屏幕分辨率
将本文件保存为 .py 文件, 然后运行.
这段 Python 代码调用了 size()
函数, 以 (x, y) 的格式输出屏幕分辨率:
-
moveTo(): 用于鼠标的移动
这段代码调用了 moveTo()
函数, 其接受 x, y 坐标作为参数, 还有一个可选的持续时间参数. 该函数将鼠标指针从当前位置移动到 (x, y) 坐标指定的位置, 移动花费的时间由持续时间参数指定. 保存并运行该 Python 脚本, 你将看到, 鼠标指针像被施了魔法一样, 从当前位置花 1 秒钟时间移动到坐标位置 (100, 100).
-
moveRel(): 根据当前位置, 相对移动鼠标指针
这段代码将鼠标指针从原位置相对地移动 (0, 50) 个像素点 (译注: 即向下移动 50 像素). 比如说, 运行代码之前, 鼠标指针在 (1000, 1000), 那么代码运行之后, 鼠标指针将移动到 (1000, 1050), 耗时 1 秒.
-
position(): 获取当前鼠标指针的位置
输出: 程序执行时的鼠标所在的位置坐标.
-
click(): 用于控制鼠标点击和拖拽
这段代码将在 (100, 100) 的位置模拟鼠标点击.
有两个与鼠标拖拽操作相关的函数: dragTo
和 dragRel
. 它们的行为与 moveTo
和 moveRel
类似, 区别在于拖拽操作在移动的过程中, 会保持鼠标左键被按下.
该功能可用于不同的场景, 比如移动对话框, 或在 Windows 的画板程序中用铅笔工具自动绘图. 在画板程序中画一个正方形:
运行这段代码之前, 在后台打开 Windows 的画板程序, 并选择铅笔工具. 执行代码, 然后在 10 秒钟之内快速切换到 Windows 画板程序 (我们调用 sleep()
函数, 为绘图预留了 10 秒钟时间).
10 秒钟之后, 你将看到画板程序正在自动绘制一个正方形, 其左上角的顶点位于 (1000, 1000), 边长 100 个像素.
-
scroll(): 滚屏函数接受像素数作为参数, 并用给定的像素数向上滚屏
这段代码会对选中的窗口进行向上滚屏 200 个像素点.
-
typewrite(): 用于自动键入字符串, 只需将要键入的字符串传递给函数作为参数即可
假设文本区域位于屏幕 (100, 100) 的坐标位置, 那么这段代码将点击文本区域, **它, 并键入 "hello Geeks!"
-
传递键名: 可以向
typywrite()
函数传入分离的键名.
这段代码等价于: 键入 "a", 然后敲击左方向键, 再敲击左 ctrl 键.
-
热键组合:
hotkey()
可以模拟组合热键, 比如: ctrl-c, ctrl-a 等:
这段代码等价于: 按住左 ctrl 键的同时按下字母 a. 因此在窗口中, 这就实现了全选的功能.