微信号:pythonbuluo

介绍:最专业的Python社区,有每日推送,免费电子书,真人辅导,资源下载,各类工具.我已委托“维权骑士”(rightknights.com)为我的文章进行维权行动

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

2017-01-12 08:26 Python程序员


Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。


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

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


使用 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. 因此在窗口中, 这就实现了全选的功能.


英文原文:http://www.geeksforgeeks.org/mouse-keyboard-automation-using-python/
译者:kissg


 
Python程序员 更多文章 使用 Python 实现鼠标键盘自动化 深度学习2016:年度回顾 高效利用Sentry追踪日志发现问题 每月好书:一路编程 高效学习Python的建议
猜您喜欢 OpenResty 的过去、现在和未来(上) 我们坚信有一种职业不可能被机器取代,这就是程序员! 应用可用性监控建设阶段小结 【R教程】R做你的第一个机器学习项目教程(一) javascript跨域及JSONP的原理与应用