如何用python模拟鼠标和键盘的操作

简介: 如何用python模拟鼠标和键盘的操作

前言



不论是模拟鼠标操作还是键盘操作,实际上我们都使用了pywinauto这个库里面的内容。


模拟鼠标操作,我们直接调用pywinauto.mouse这个模块里面的各个方法即可;而模拟键盘输入,我们则需要用到pywinauto.keyboard这个模块里面的SendKeys(keyname)方法。


模拟鼠标动作



模拟鼠标操作,首先需要获取当前连接的窗口,然后再调用相应模块里面的方法:


from airtest.core.api import *
auto_setup(__file__)
# 获取当前连接的窗口
dev = device()
# 拿到鼠标,并模拟鼠标的右键点击操作
dev.mouse.right_click(coords=(1920,100))
复制代码


pywinauto.mouse这个模块里,还提供了很多常用的鼠标操作的方法:


# 鼠标点击操作,可以修改coords来指定点击位置
pywinauto.mouse.click(button='left', coords=(0, 0))
# 鼠标双击操作,可以修改coords来指定双击位置
pywinauto.mouse.double_click(button='left', coords=(0, 0))
# 移动鼠标,可以修改coords使鼠标移动到指定位置
pywinauto.mouse.move(coords=(0, 0))
# 鼠标右键点击,可以修改coords来指定右键点击位置
pywinauto.mouse.right_click(coords=(0, 0))
# 鼠标滚动操作,可以修改coords来指定滚动位置,修改wheel_dist来指定滚动距离
pywinauto.mouse.scroll(coords=(0, 0), wheel_dist=1)
复制代码


模拟键盘输入



调用Airtest封装好的keyevent方法


比较特别的是,Airtest里面还有封装好的keyevent方法,来供我们发送键盘事件。从下面的源码可以看出,这个方法其实也是用的pywinauto库里面的内容。



只要连接了窗口设备,我们就可以直接使用Airtest封装好的keyevent方法来模拟键盘输入,可以省略获取当前窗口的操作:


from airtest.core.api import *
auto_setup(__file__)
# 模拟键盘输入^a和DELETE事件
keyevent("^a")
keyevent("{DELETE}")
复制代码


调用SendKeys方法


与模拟鼠标操作类似,调用pywinauto.keyboard模块里面的SendKeys(keyname)方法,也需要先获取当前连接的窗口:


from airtest.core.api import *
auto_setup(__file__)
# 获取当前连接的窗口
dev = device()
# 拿到键盘,模拟输入^a,^a代表Ctrl+A,即全选
dev.keyboard.SendKeys("^a")
dev.keyboard.SendKeys("{DELETE}")
复制代码


注意,这里的keyname需要用""括起来。更多keyname可以参考下图:


相关文章
|
1月前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
22 1
|
1月前
|
人工智能 开发工具 Python
[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
16 0
|
2月前
|
监控 Python
用 Python 操作你的鼠标和键盘
用 Python 操作你的鼠标和键盘
50 2
|
4月前
|
监控 Python Windows
Python如何接收键盘按键
根据你的应用场景(控制台应用、GUI应用或需要监控按键事件的应用),可以选择适当的方法来接收键盘输入。对于交互式命令行脚本,`input()`或 `getch`类函数通常就足够。对于更复杂的键盘交互,如监控全局按键或构建含有图形用户界面的应用程序,则需要使用如 `pynput`或GUI特有的库函数来实现。
91 1
|
4月前
|
算法 关系型数据库 程序员
程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码
这篇文章是关于如何使用Python的`pyautogui`库来控制鼠标和键盘进行各种操作,包括移动、点击、滚轮控制以及键盘的按键和快捷键输出,并介绍了如何结合图像处理和计算机视觉技术来扩展其应用。
|
5月前
|
监控 网络协议 网络安全
SMTP操作使用详解并通过python进行smtp邮件发送示例
SMTP操作使用详解并通过python进行smtp邮件发送示例
154 3
|
5月前
|
安全 数据安全/隐私保护 Python
|
5月前
|
Serverless 语音技术 开发工具
函数计算操作报错合集之怎么何集成nls tts python sdk
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
|
5月前
|
API Python
Python高手修炼手册:精通文件系统操作,掌控I/O管理,提升编程效率
【7月更文挑战第30天】在 Python 编程中, 文件系统操作与 I/O 管理是连接程序与数据的关键。初学者常因路径错误和权限问题受挫, 而高手能自如管理文件。传统 `os` 和 `os.path` 模块易出错, `pathlib` 提供了更直观的对象导向 API。I/O 方面, 同步操作会阻塞程序, 异步 (如使用 `aiofiles`) 则能大幅提升并发能力。真正的高手不仅掌握 API, 更能预见性能瓶颈并优化代码, 实现高效与优雅。
45 1
|
15天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!