当前位置: 首页 > article >正文

用 Python 模拟鼠标键盘操作,实现自动控制电脑版微信发送消息

用 Python 模拟鼠标键盘操作实现自动控制电脑版微信发送消息前言在日常办公中我们经常会遇到一些重复性的电脑操作例如打开某个软件、点击固定位置、输入一段文字、按下快捷键等。如果这些操作规则比较固定就可以考虑使用 Python 进行自动化控制。PyAutoGUI 是一个常用的 Python 自动化操作库它可以模拟鼠标和键盘行为例如移动鼠标、点击按钮、输入文本、按下快捷键、截图以及定位屏幕元素等。它的特点是使用简单、跨平台能力较好适合 Python 初学者学习桌面自动化的基本思路。本文将以电脑版微信为例介绍如何使用 PyAutoGUI 模拟鼠标和键盘操作实现自动打开微信、定位好友、输入消息并发送。需要注意的是本文示例仅用于学习桌面自动化技术和处理个人重复操作。请不要将自动化脚本用于骚扰、群发垃圾消息或违反平台规则的行为。一、环境准备1. Python 环境建议使用 Python 3.8 及以上版本。可以在命令行中执行下面的命令查看 Python 版本python--version如果可以正常输出版本号例如Python 3.11.0说明 Python 环境已经安装完成。2. 安装 PyAutoGUI使用pip安装 PyAutoGUIpipinstallpyautogui如果安装速度较慢也可以使用国内镜像源pipinstallpyautogui-ihttps://pypi.tuna.tsinghua.edu.cn/simple安装完成后可以在 Python 中测试导入importpyautoguiprint(PyAutoGUI 安装成功)如果没有报错说明环境准备完成。二、核心知识点在编写完整脚本之前需要先了解 PyAutoGUI 的几个基础用法。1. 获取屏幕尺寸importpyautogui width,heightpyautogui.size()print(width,height)pyautogui.size()会返回当前屏幕的宽度和高度单位是像素。2. 获取当前鼠标位置importpyautogui x,ypyautogui.position()print(x,y)这个方法可以获取鼠标当前所在位置的坐标。后续自动点击微信好友、输入框等位置时会用到这些坐标。3. 鼠标移动importpyautogui pyautogui.moveTo(500,300,duration0.5)moveTo()用于把鼠标移动到指定坐标。duration表示移动过程持续的时间单位是秒。4. 鼠标点击importpyautogui pyautogui.click(500,300)click()用于点击指定坐标。如果不传坐标则默认点击当前鼠标所在位置。5. 键盘输入importpyautogui pyautogui.write(Hello,interval0.05)write()可以模拟键盘输入英文字符。interval表示每个字符之间的输入间隔。不过pyautogui.write()对中文输入支持并不稳定。因此在自动发送中文消息时更推荐使用剪贴板方式先把中文内容复制到剪贴板再模拟Ctrl V粘贴。6. 快捷键操作importpyautogui pyautogui.hotkey(ctrl,v)pyautogui.press(enter)hotkey()可以模拟组合键press()可以模拟单个按键。7. 延迟等待importtime time.sleep(1)桌面自动化脚本经常需要等待窗口打开、页面加载、软件响应因此合理加入延迟非常重要。三、实战案例自动控制电脑版微信发送消息本案例的目标是打开电脑版微信。点击微信搜索框。输入好友名称。点击搜索结果中的好友。在聊天输入框中输入消息。自动发送消息。由于不同电脑的屏幕分辨率、微信窗口大小、缩放比例可能不同脚本中的坐标需要根据自己的电脑进行调整。四、获取坐标的方法在运行自动化脚本前建议先获取几个关键位置的坐标微信搜索框坐标搜索结果中的好友坐标聊天输入框坐标可以使用下面的小工具查看鼠标实时坐标importpyautoguiimporttimeprint(请将鼠标移动到目标位置按 Ctrl C 结束程序)try:whileTrue:x,ypyautogui.position()print(f当前鼠标坐标x{x}, y{y},end\r)time.sleep(0.1)exceptKeyboardInterrupt:print(\n坐标获取结束)运行程序后把鼠标移动到目标位置就可以看到实时坐标。记录这些坐标后填入后面的完整代码即可。五、完整可运行代码示例下面的代码使用 PyAutoGUI 自动打开电脑版微信并向指定好友发送一条消息。在运行代码之前请先根据自己的电脑修改WECHAT_PATHSEARCH_BOX_POSFRIEND_RESULT_POSINPUT_BOX_POSFRIEND_NAMEMESSAGEimportosimporttimeimportpyautoguiimportpyperclip# # 1. 基础配置# # 电脑版微信的安装路径需要根据自己的电脑实际情况修改# 常见路径示例# C:\Program Files\Tencent\WeChat\WeChat.exe# C:\Program Files (x86)\Tencent\WeChat\WeChat.exeWECHAT_PATHrC:\Program Files\Tencent\WeChat\WeChat.exe# 需要发送消息的好友名称FRIEND_NAME文件传输助手# 需要发送的消息内容MESSAGE你好这是一条使用 Python 和 PyAutoGUI 自动发送的测试消息。# 微信搜索框坐标需要根据自己的电脑修改SEARCH_BOX_POS(160,40)# 搜索结果中好友的位置坐标需要根据自己的电脑修改FRIEND_RESULT_POS(170,140)# 聊天输入框坐标需要根据自己的电脑修改INPUT_BOX_POS(520,720)# 每次操作后的等待时间防止软件响应较慢导致操作失败WAIT_TIME1# # 2. 安全设置# # PyAutoGUI 的安全保护机制# 如果鼠标快速移动到屏幕左上角程序会抛出异常并停止运行pyautogui.FAILSAFETrue# 每个 PyAutoGUI 操作之间自动暂停 0.2 秒pyautogui.PAUSE0.2defopen_wechat():打开电脑版微信。# 判断微信程序是否存在ifnotos.path.exists(WECHAT_PATH):raiseFileNotFoundError(f未找到微信程序请检查路径是否正确{WECHAT_PATH})# 使用 os.startfile 打开 Windows 程序os.startfile(WECHAT_PATH)# 等待微信窗口启动time.sleep(3)defpaste_text(text):通过剪贴板粘贴文本适合输入中文内容。# 将文本复制到系统剪贴板pyperclip.copy(text)# 模拟 Ctrl V 粘贴pyautogui.hotkey(ctrl,v)# 等待文本粘贴完成time.sleep(0.5)defselect_friend(friend_name):通过搜索框定位并打开指定好友聊天窗口。# 点击微信搜索框pyautogui.click(*SEARCH_BOX_POS)time.sleep(WAIT_TIME)# 先清空搜索框中可能存在的内容pyautogui.hotkey(ctrl,a)pyautogui.press(backspace)time.sleep(0.5)# 输入好友名称。中文内容使用剪贴板粘贴更稳定paste_text(friend_name)time.sleep(WAIT_TIME)# 点击搜索结果中的好友pyautogui.click(*FRIEND_RESULT_POS)time.sleep(WAIT_TIME)defsend_message(message):在聊天输入框中输入并发送消息。# 点击聊天输入框pyautogui.click(*INPUT_BOX_POS)time.sleep(0.5)# 输入消息内容paste_text(message)time.sleep(0.5)# 按下 Enter 发送消息pyautogui.press(enter)defmain():主函数按顺序执行自动化流程。# 打开电脑版微信open_wechat()# 搜索并打开指定好友select_friend(FRIEND_NAME)# 输入并发送消息send_message(MESSAGE)print(消息发送流程执行完成)if__name____main__:main()六、代码说明1. 为什么使用 pyperclippyautogui.write()更适合输入英文和数字。如果直接输入中文可能会受到输入法状态、系统语言、焦点位置等因素影响。因此代码中使用pyperclip.copy()先把中文复制到剪贴板再通过pyautogui.hotkey(ctrl, v)粘贴到微信输入框。这样输入中文消息会更加稳定。2. 为什么要加入 time.sleep桌面软件不是瞬间响应的。例如微信启动、搜索好友、切换聊天窗口都需要一定时间。如果脚本执行太快可能会出现窗口还没打开就开始点击、搜索结果还没加载就开始选择等问题。所以代码中在关键步骤后加入了time.sleep()用于提高脚本稳定性。3. 为什么需要修改坐标PyAutoGUI 主要基于屏幕坐标进行操作。不同电脑的屏幕分辨率、缩放比例、微信窗口位置不同同一个按钮的坐标也会不同。因此示例代码中的坐标只是参考值。实际运行前必须先使用坐标获取工具重新确认坐标。七、注意事项1. 坐标获取要准确运行脚本前建议先固定微信窗口位置和大小然后使用坐标获取工具记录搜索框、好友搜索结果、聊天输入框的位置。如果微信窗口移动了原来的坐标可能就不再准确。2. 开启安全保护PyAutoGUI 默认支持 Fail-Safe 机制。当程序失控时可以把鼠标快速移动到屏幕左上角脚本会自动抛出异常并停止。代码中建议保留pyautogui.FAILSAFETrue不要随意关闭这个安全设置。3. 避免误操作在执行自动化脚本前应关闭不相关窗口确保微信处于可操作状态。否则脚本可能点击到其他窗口造成误操作。建议先把消息发送给“文件传输助手”进行测试确认流程稳定后再用于其他个人场景。4. 不要用于批量骚扰自动化工具应当用于提高个人效率而不是用于批量发送广告、骚扰他人或规避平台规则。使用自动化脚本时应遵守软件平台规则和相关法律法规。5. 确认微信路径如果运行代码时报错“未找到微信程序”说明WECHAT_PATH配置不正确。可以右键微信快捷方式查看目标路径然后复制到代码中。八、总结本文介绍了如何使用 Python 的 PyAutoGUI 库模拟鼠标和键盘操作并以电脑版微信为例实现了自动打开软件、搜索好友、输入消息和发送消息的完整流程。通过这个案例可以看到PyAutoGUI 的核心思路并不复杂先确定操作位置再按照人工操作顺序编写脚本。对于一些规则固定、重复性较高的桌面操作PyAutoGUI 是一个非常实用的自动化工具。不过基于坐标的自动化方式对窗口位置和屏幕环境比较敏感。在实际使用中应当注意坐标准确性、操作延迟和安全保护避免脚本误操作。

相关文章:

用 Python 模拟鼠标键盘操作,实现自动控制电脑版微信发送消息

用 Python 模拟鼠标键盘操作,实现自动控制电脑版微信发送消息 前言 在日常办公中,我们经常会遇到一些重复性的电脑操作,例如打开某个软件、点击固定位置、输入一段文字、按下快捷键等。如果这些操作规则比较固定,就可以考虑使用…...

别再混淆了!SAP ABAP里bgRFC的Inbound和Outbound到底怎么选?附SBGRFCCONF配置详解

SAP ABAP开发实战:bgRFC的Inbound与Outbound场景深度解析 在SAP系统集成领域,bgRFC(Background Remote Function Call)作为传统RFC的增强版本,已经成为处理异步系统通信的核心技术。但许多ABAP开发者在面对Inbound和Ou…...

SerialPlot实战指南:3步掌握串口数据可视化,让调试效率翻倍

SerialPlot实战指南:3步掌握串口数据可视化,让调试效率翻倍 【免费下载链接】serialplot Small and simple software for plotting data from serial port in realtime. 项目地址: https://gitcode.com/gh_mirrors/se/serialplot 你是否曾经面对串…...

想在瑞芯微RK3588上跑视频分类模型?避开3D卷积这个坑,试试这几种NPU友好的方案

瑞芯微RK3588视频分类模型部署实战:3D卷积替代方案与性能优化 在嵌入式AI领域,瑞芯微RK3588凭借其强大的NPU加速能力成为众多开发者的首选平台。然而当我们将目光投向视频理解任务时,一个关键问题浮出水面:如何在不支持原生3D卷积…...

关系型数据库MySQL(三):主从复制

数据库主从复制一、主从复制核心概念定义:主从复制是一种数据库架构模式,允许一个 MySQL 数据库服务器(主库)将其数据变更自动复制到一个或多个其他 MySQL 服务器(从库)。 目的:高可用&#xff…...

服务网格治理功能

服务网格治理功能:构建高效微服务架构的核心支柱 在云原生与微服务架构盛行的今天,服务网格(Service Mesh)已成为企业实现服务间通信、监控与安全的关键基础设施。而服务网格治理功能,则是其核心价值所在,…...

89C51定时器初值计算全攻略:12M与11.0592M晶振实战对照表

89C51定时器初值计算全攻略:12M与11.0592M晶振实战对照表 在嵌入式开发中,定时器的精确控制是许多功能实现的基础。对于使用89C51系列单片机的开发者来说,定时器初值的计算是一个必须掌握的技能。本文将深入探讨89C51定时器的工作原理&#x…...

用git bisect run自动化定位引入Bug的提交

在软件开发中,Bug的引入往往难以避免,尤其是当项目历史提交较多时,手动排查问题根源会变得异常耗时。Git提供的git bisect工具可以高效地定位引入Bug的提交。而结合git bisect run自动化脚本,开发者可以进一步减少人工干预&#x…...

百度网盘提取码智能解析工具:自动化获取解决方案

百度网盘提取码智能解析工具:自动化获取解决方案 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 在数字资源分享日益频繁的今天,百度网盘作为国内主流的云存储平台,其提取码机制在保护资源的…...

LabVIEW堆叠柱状图实现

​LabVIEW 实现故障类型堆叠柱状图可视化,将字符串格式的原始数据转换为数值,通过嵌套循环计算各站点故障类型的累计百分比,经数组转置后,用波形图展示不同站点的故障占比分布,直观呈现各类故障在各站点的构成情况。程…...

如何用baidu-wangpan-parse轻松实现百度网盘高速下载

如何用baidu-wangpan-parse轻松实现百度网盘高速下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在云存储时代,百度网盘已成为国内用户分享大型文件的首选平台…...

Pixel Language Portal入门指南:理解混元转码核心与跨维度语义保持机制

Pixel Language Portal入门指南:理解混元转码核心与跨维度语义保持机制 1. 产品概览 Pixel Language Portal(像素语言跨维传送门)是一款革命性的语言翻译工具,它重新定义了人机交互的翻译体验。基于腾讯Hunyuan-MT-7B核心引擎构…...

A级数据中心建设运营汇报方案:A级数据中心建设、A级数据中心运营、数据中心节能

该方案系统性地展示了A级数据中心从建设施工、组织管理、物资调配、测试培训到运维管理、故障处理,再到节能降耗(PUE优化)的全流程能力。重点突出了标准化建设、专业化分工、系统化调试、智能化运维和绿色节能目标的实现路径,适用…...

AI 大模型应用程序的开发

开发 AI 大模型应用程序(LLM Application)已经从简单的“API 调用”演变为一套复杂的工程化流程。目前的开发范式不再仅仅关注模型本身,而更侧重于如何将模型整合进业务逻辑中,并确保其产出的稳定性和准确性。以下是 AI 大模型应用…...

SAP Fiori SPA开发入门:从零搭建你的第一个企业级应用

1. 为什么选择SAP Fiori开发企业级应用? 如果你正在寻找一种高效开发企业级应用的方式,SAP Fiori绝对值得考虑。作为SAP官方推出的用户体验设计语言和开发框架,它专为企业应用场景优化,提供了开箱即用的丰富UI组件和标准化设计规范…...

1575M频段天线模块方案选型及物联网应用指南解析

随着全球通信技术的迅猛发展,频段天线模块在各类应用中扮演了重要角色,尤其是1575M频段天线模块,广泛应用于导航、定位、自动驾驶等领域。本文围绕1575M频段天线模块,从品牌厂商、优势产品、应用方案、选购要点及常见问题等方面进…...

AI 智能体的开发流程

开发一个成熟的 AI 智能体(AI Agent)不再是简单的“写提示词”,而是一个涉及工程化、数据闭环和持续评估的系统过程。以下是 2026 年主流的 AI Agent 开发标准流程。1. 需求定义与场景拆解在动手写代码前,必须明确 Agent 的边界。…...

技术整合的方法论与系统融合

技术整合的方法论与系统融合:构建高效协同的数字化未来 在数字化转型的浪潮中,技术整合与系统融合成为企业提升效率、实现创新的核心路径。技术整合并非简单堆砌工具,而是通过系统化方法论,将异构技术、数据与业务流程无缝衔接&a…...

CATIA高效设计:自定义快捷键全攻略

1. 为什么你需要自定义CATIA快捷键? 刚接触CATIA时,我和大多数人一样傻傻地用鼠标点菜单栏。直到有次看到同事用键盘噼里啪啦操作,建模速度比我快三倍,才意识到快捷键的重要性。CATIA默认的快捷键设置其实非常基础,很…...

保姆级教程:大麦DW22D路由器免拆机刷Breed和OpenWrt(附全套工具包)

大麦DW22D路由器零基础刷机指南:从入门到精通 第一次接触路由器刷机时,我盯着那些命令行界面和陌生的术语,感觉像是在看天书。直到亲手把一台闲置的大麦DW22D刷成了功能强大的OpenWrt系统,才发现原来整个过程可以如此简单——只要…...

别再手动分桶了!用torch.compile的dynamic模式,让PyTorch推理自动适应动态输入形状

动态输入形状的终极解决方案:torch.compile(dynamicTrue)深度解析 在深度学习推理场景中,输入数据的形状变化一直是工程优化的痛点。想象一下这样的场景:你的推荐系统需要处理从32到1024不等的用户行为序列,或者NLP模型要适应不同…...

用Quartus和Modelsim手把手教你:一个FPGA自动售货机的完整状态机设计(附Verilog代码)

从零构建FPGA自动售货机:状态机设计与Verilog实战指南 1. 项目概述与设计思路 想象一下,你正站在一台自动售货机前,准备购买一瓶饮料。这个看似简单的交互过程背后,隐藏着一套精密的状态控制系统。今天,我们将用FPGA和…...

Qwen3多模态进阶:结合图像描述生成更具上下文感的视频字幕

Qwen3多模态进阶:结合图像描述生成更具上下文感的视频字幕 不知道你有没有过这样的体验:看视频时,字幕只是机械地复述着台词,而画面里那些关键的动作、表情、场景变化,字幕却只字不提。比如,主角激动地举起…...

Android虚拟定位终极指南:FakeLocation如何解决你的位置隐私痛点

Android虚拟定位终极指南:FakeLocation如何解决你的位置隐私痛点 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你是否曾因应用强制获取位置权限而感到不安&#xff…...

AI小白入门指南:30天掌握核心技能

学习人工智能(AI)是一个循序渐进的过程,尤其对新人小白来说,建议按照以下步骤逐步深入: 1. 打好基础 数学基础: AI的核心依赖数学知识,重点掌握: 线性代数:矩阵运算&…...

PyQt6开发教程(四):布局管理

案例:利用QtDesigner设计如下布局,如图1所示。图1一,布局管理分析布局即控件摆放的方式,如图2所示,在Qt Designer左侧的“布局”栏中可以看到有4种布局方式:“Vertical Layout(垂直布局&#xf…...

Poppler for Windows:让PDF处理变得简单的终极指南

Poppler for Windows:让PDF处理变得简单的终极指南 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows上的PDF处理工具烦恼吗…...

从Java到Vue:一名全栈开发者的面试实录

从Java到Vue:一名全栈开发者的面试实录 面试官:你好,我是这次的面试官。请简单介绍一下你自己。 应聘者:你好,我叫林浩,25岁,毕业于上海交通大学计算机科学与技术专业,硕士学历。工作…...

学Simulink——基于Simulink的开关电容变换器电压均衡控制

目录 手把手教你学Simulink——基于Simulink的开关电容变换器电压均衡控制​ 摘要​ 一、背景与挑战​ 1.1 为什么需要主动电压均衡?​ 1.2 开关电容变换器(SCC):能量的“摆渡车”​ 1.3 破局之道:闭环电压均衡控制​ 二、系统架构与核心控制推导​ 2.1 整体架构:…...

CefFlashBrowser:2024年Flash内容终极解决方案,让经典游戏和课件重获新生

CefFlashBrowser:2024年Flash内容终极解决方案,让经典游戏和课件重获新生 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 在2024年的今天,你是否还在为…...