程序聚合 软件案例 微信定时群发助手-桌面自动化

微信定时群发助手-桌面自动化

2026-07-27 17:42:58
行业:电商
载体:嵌入式软件
技术:Python、PyAutoGUI

业务和功能介绍

1、立项背景和目标

在社群电商和社区团购业务中,运营人员需要每天在固定时间(如午餐前、晚餐前)向多个微信群发送营销消息(如当日菜单、限时优惠、接龙提醒等)。实际操作中,运营人员需要逐个打开微信群、复制消息内容、粘贴发送,整个过程重复性高、耗时且容易遗漏。如果团队管理数十个群,每次群发需要15-30分钟,且必须准时操作,占用大量人力。此外,远程桌面场景下微信窗口的激活和焦点获取存在技术难题,普通自动化脚本在远程断开重连后容易失效。本项目的核心目标是:构建一个Windows桌面自动化工具,实现微信消息的定时批量群发——用户只需配置群列表和发送时间,工具自动在指定时间激活微信、搜索群、粘贴消息并发送,全程无人值守。

2、软件功能、核心功能模块的介绍

工具涵盖以下核心模块:定时调度引擎——基于schedule库实现多时间点注册,支持配置多个发送时间(如午餐11:30、晚餐17:00),到点自动触发批量发送;配置文件动态加载——支持多套独立配置(如config_lunch.py、config_dinner.py),不同时段发送不同内容和群列表,通过命令行参数灵活切换;微信窗口强制激活——通过win32gui+pyautogui组合,实现远程桌面环境下窗口的可靠前置,解决了SetForegroundWindow在远程会话中的权限限制问题;搜索与切换群——模拟Ctrl+F搜索、Ctrl+A全选删除、粘贴群名、回车打开群聊的完整流程,支持任意群名;消息发送——支持普通文本和@所有人两种模式(消息以@all@开头则自动@所有人);消息动态生成——支持在配置文件中定义get_message()函数,每次发送时动态生成消息内容(如包含当天日期、实时库存等)。

3、业务流程、功能路径描述

用户创建配置文件(如config_lunch.py),配置GROUP_NAMES群列表、SCHEDULE_TIMES发送时间、get_message()消息生成函数 → 双击运行脚本并传入配置名(如python main.py config_lunch)→ 工具启动,注册定时任务 → 到设定时间(如11:30)自动触发batch_send()→ 工具激活微信窗口(强制置顶+模拟点击标题栏)→ 按Ctrl+F打开搜索框 → 清空搜索框 → 粘贴第一个群名 → 按回车打开群聊天窗口 → 点击输入框获取焦点 → 粘贴消息内容(若以@all@开头则先输入@并回车再粘贴正文)→ 按回车发送 → 记录成功日志 → 等待2-4秒后处理下一个群 → 全部发送完成后等待下一个定时点。工具持续运行,支持多轮定时任务。

项目实现

1、整体架构和设计思路,不同模块使用的技术栈

项目采用模块化分层设计,技术栈为Python 3 + Windows GUI自动化库。配置层:每个业务场景独立创建配置文件(如config_lunch.py、config_dinner.py),包含群列表、发送时间、消息生成函数三要素,通过__import__()动态加载,实现一核多配。窗口管理层:使用win32gui库操作Windows窗口句柄(FindWindow、SetWindowPos、SetForegroundWindow、ShowWindow、GetWindowRect),实现微信窗口的定位、恢复、置顶和坐标获取;核心创新是通过"临时置顶+模拟点击标题栏"的组合方案,解决远程桌面环境下SetForegroundWindow失效的业界难题。输入模拟层:使用pyautogui库模拟鼠标点击和键盘输入(点击坐标、热键Ctrl+F/Ctrl+V/Ctrl+A、Press回车等),结合pyperclip实现中文内容的可靠粘贴(避免typewrite逐字输入中文的不可靠性和低效率)。调度层:使用schedule库实现秒级精度的定时任务注册,主循环每30秒检查一次待执行任务。

2、"我"的负责模块和结果(尽可能量化)

(请根据实际情况替换) 本人独立完成该项目的全流程开发与测试,包括:窗口激活核心函数(约80行 关键代码)、配置文件动态加载机制、消息发送全链路封装、定时调度框架、5套 不同时段的配置文件(午餐/晚餐/宵夜/早安/促销)。项目实现了:单次群发 20-50个 群,总耗时从 手工操作约15-30分钟 压缩至 2-3分钟 ,效率提升约 85%以上 ;窗口激活成功率从普通方案的 约60%(远程桌面场景)提升至 95%以上 ;连续运行_30天_ 无需人工干预的稳定性验证。工具已在实际社区团购业务中运行超过 3个月 。

3、"我"遇到的难点、坑,和解决方案

难点一:远程桌面场景下SetForegroundWindow失效。 Windows系统出于安全考虑,远程桌面会话中非前台进程调用SetForegroundWindow会被静默忽略(即使窗口已找到),导致自动化脚本无法将微信窗口激活到前台。解决方案:采用多步骤强制激活策略——先恢复最小化窗口(ShowWindow SW_RESTORE),再通过SetWindowPos设置HWND_TOPMOST临时置顶突破层级限制,调用SetForegroundWindow后立即取消置顶;最关键的一步是模拟点击窗口标题栏(通过GetWindowRect获取窗口坐标,点击左上角偏移15,15),这个操作会触发窗口消息循环,将焦点强制转移到目标窗口,彻底绕过远程会话的权限限制。

难点二:中文输入在GUI自动化中不可靠。 pyautogui的typewrite()不支持中

示例图片视频


peterpan
30天前活跃
方向: 人工智能-AI应用开发、
交付率:100.00%
相似推荐
粮食收购点出入口系统-粮食收购点出入口系统
1.为了乡镇粮食收购点的业务功能如:出入库、记录库存、统计查询使用方便 2.满足多个收购点多租户登录使用 3.满足多个品种地磅进行系统适配使用 4.满足多个品牌摄像头接入 5.能够进行实时小票打印,包含销售模块、收购模块,能够根据小票的二维码快速查询信息
江西省人民医院医疗廉洁防控平台
对接医院信息系统,自动归集:处方、医嘱、药品耗材使用、检查检验申请、收费结算、耗材采购、设备采购、患者就诊、医保结算等全量业务数据,形成医疗行为大数据池。 内置风控规则模型,自动筛查异常行为并预警:大处方、重复开药、高频开同类检查、耗材异常使用、同一医生高频开具特定药品 / 耗材、超适应症检查、医保违规结算等;按风险等级分为红 / 黄预警,自动推送至医务、医德医风办、纪检部门。
课表查询(正方教务系统多校适配版)
高校教务系统(正方 jwglxt 等)是学生查询课表、成绩、考试安排的唯一官方入口, 但普遍存在四个现实问题:一是登录需 RSA 加密加密并对接 CSRF 令牌,页面为服务端 渲染的复杂表格,手机浏览器打开体验极差;二是课表的单双周、分段奇偶、调休与临时 停课信息只能靠学生自己推算,极易看错;三是成绩与绩点口径混乱,挂科课程常被错误 计入"已获得学分",导致学生无法与学校数字对账;四是空教室只能逐节次手工查询, 效率极低。学生每周都要反复核对课表与空教室,却缺少一个能在手机上清晰查看、并可 一键导入系统日历的工具。本项目立项,即为解决高校学生在课表、成绩、考试、空教室 四类高频信息上的查询成本问题。
WPF上位机-上位机SCADA/HMI
🌟 核心架构与技术亮点 (Architecture Highlights) 🔄 内存级环形缓冲区 :采用手搓环形队列实现高频采集与消费解耦,极大地降低 C# 垃圾回收 (GC) 压力支撑界面流畅渲染。 ⚡ 自研轻量级数据核心 :轻量级内存数据核心,高性能内存状态机,实时采集点位高速路由,实时状态响应与事件报警分发。 ⏱️ 自适应时间补偿 :基于高精度 Stopwatch 计时,动态修正采集调度周期,抑制高频采集任务的时间漂移与时序抖动 🔒 无饥饿并发控制 :基于轻量级异步锁+线程池隔离策略,PLC通信负载与UI线程解耦。
智能汽车项目
完成汽车某些功能的座仓设计与交付,使座仓具备了高端的应用场景与用户使用感受;汽车座仓的流畅度设计,保障汽车在整体市场的高竞争力;汽车座仓的人因设计效果的落地与实施效果跟踪与改进,保障汽车在整体市场的高竞争力。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服