使用 Python 实现鼠标键盘自动化

时间:2024-03-22 09:04:20

使用 Python 实现鼠标键盘自动化

本文演示了如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的, 因此执行以下命令进行安装:

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取****,电子书籍,以及课程的源代码!
QQ群:101677771

使用 Python 实现鼠标键盘自动化

使用 pyautogui 模块控制鼠标的移动

Python 通过屏幕的坐标系统对鼠标指针进行追踪与控制. 假设你的屏幕分辨率为 1920X1080, 那么屏幕的坐标系统看起来是这样的:

使用 Python 实现鼠标键盘自动化

  • size(): 用于获取屏幕分辨率

使用 Python 实现鼠标键盘自动化

将本文件保存为 .py 文件, 然后运行.

这段 Python 代码调用了 size() 函数, 以 (x, y) 的格式输出屏幕分辨率:

使用 Python 实现鼠标键盘自动化

  • moveTo(): 用于鼠标的移动

使用 Python 实现鼠标键盘自动化

这段代码调用了 moveTo() 函数, 其接受 x, y 坐标作为参数, 还有一个可选的持续时间参数. 该函数将鼠标指针从当前位置移动到 (x, y) 坐标指定的位置, 移动花费的时间由持续时间参数指定. 保存并运行该 Python 脚本, 你将看到, 鼠标指针像被施了魔法一样, 从当前位置花 1 秒钟时间移动到坐标位置 (100, 100).

  • moveRel(): 根据当前位置, 相对移动鼠标指针

使用 Python 实现鼠标键盘自动化

这段代码将鼠标指针从原位置相对地移动 (0, 50) 个像素点 (译注: 即向下移动 50 像素). 比如说, 运行代码之前, 鼠标指针在 (1000, 1000), 那么代码运行之后, 鼠标指针将移动到 (1000, 1050), 耗时 1 秒.

  • position(): 获取当前鼠标指针的位置

使用 Python 实现鼠标键盘自动化

输出: 程序执行时的鼠标所在的位置坐标.

  • click(): 用于控制鼠标点击和拖拽

使用 Python 实现鼠标键盘自动化

这段代码将在 (100, 100) 的位置模拟鼠标点击.

 

有两个与鼠标拖拽操作相关的函数: dragTo 和 dragRel. 它们的行为与 moveTo 和 moveRel 类似, 区别在于拖拽操作在移动的过程中, 会保持鼠标左键被按下.

该功能可用于不同的场景, 比如移动对话框, 或在 Windows 的画板程序中用铅笔工具自动绘图. 在画板程序中画一个正方形:

使用 Python 实现鼠标键盘自动化

运行这段代码之前, 在后台打开 Windows 的画板程序, 并选择铅笔工具. 执行代码, 然后在 10 秒钟之内快速切换到 Windows 画板程序 (我们调用 sleep() 函数, 为绘图预留了 10 秒钟时间).

10 秒钟之后, 你将看到画板程序正在自动绘制一个正方形, 其左上角的顶点位于 (1000, 1000), 边长 100 个像素.

  • scroll(): 滚屏函数接受像素数作为参数, 并用给定的像素数向上滚屏

使用 Python 实现鼠标键盘自动化

这段代码会对选中的窗口进行向上滚屏 200 个像素点.

  • typewrite(): 用于自动键入字符串, 只需将要键入的字符串传递给函数作为参数即可

使用 Python 实现鼠标键盘自动化

假设文本区域位于屏幕 (100, 100) 的坐标位置, 那么这段代码将点击文本区域, **它, 并键入 "hello Geeks!"

  • 传递键名: 可以向 typywrite() 函数传入分离的键名.

使用 Python 实现鼠标键盘自动化

这段代码等价于: 键入 "a", 然后敲击左方向键, 再敲击左 ctrl 键.

  • 热键组合hotkey() 可以模拟组合热键, 比如: ctrl-c, ctrl-a 等:

使用 Python 实现鼠标键盘自动化

这段代码等价于: 按住左 ctrl 键的同时按下字母 a. 因此在窗口中, 这就实现了全选的功能.