Python 自动化脚本:实现定时与循环发送消息
一、前言
有时候我们希望解放双手,让电脑帮我们自动发送一些预设的消息,这能节省大量重复操作的时间。
本文介绍如何使用 Python 的 pyautogui 和 pyperclip 库实现桌面端的自动消息发送功能。通过模拟鼠标点击和键盘输入,程序可以按设定间隔复制粘贴并发送文本内容。文章提供了获取窗口坐标的方法及完整的代码示例,适用于需要批量或定时发送消息的场景,同时强调了合理设置频率以避免被封禁的风险及合规使用的重要性。

有时候我们希望解放双手,让电脑帮我们自动发送一些预设的消息,这能节省大量重复操作的时间。
例如:
注意:本教程仅用于学习自动化原理及合法合规的场景(如个人测试、内部通知等)。请勿用于恶意刷屏、骚扰他人或违反平台规则的行为。
程序运行后,可设置延迟时间开始发送,并设定消息间隔。例如设置 2 秒延迟后开始发送,间隔 0.5 秒发一次,即可实现无人值守的自动发送。
os, time, pyautogui, pyperclip安装依赖库命令:
pip install pyautogui pyperclip
实现的核心逻辑主要分为两部分:获取聊天窗口位置 和 实现自动发送消息功能。
在发送消息前,需要知道鼠标停留在哪里才能定位到聊天窗口的输入界面,即获取鼠标的 x 和 y 坐标。
使用 pyautogui 库获取实时鼠标位置:
import pyautogui as pag
import time
import os
try:
while True:
print("按 Ctrl+C 结束")
x, y = pag.position() # 返回鼠标的坐标
posStr = "Position:" + str(x).rjust(4) + ',' + str(y).rjust(4)
print(posStr) # 打印坐标
time.sleep(0.2)
os.system('cls') # 清屏 (Windows)
except KeyboardInterrupt:
print('end....')
运行程序后,移动鼠标,x 和 y 值会随之改变。将鼠标定位到聊天窗口的输入框位置,记录此时的坐标值,后续代码将直接使用这些坐标进行点击。
获取坐标后,编写程序实现'复制文本 → 粘贴文本 → 发送消息'的流程。
pyautoguipypercliptime首先准备需要发送的内容,存储在变量中:
content = """
呼叫!
第二遍!
第三遍!
第四遍!
第五遍!
"""
在运行代码后,需要切换到聊天界面。为了留出足够的手动切换时间,可以在执行前设置延迟:
time.sleep(4) # 等待 4 秒供用户切换窗口
接下来是核心循环逻辑:
import pyautogui as pag
import pyperclip
import time
# 配置参数
SEND_X, SEND_Y = 669, 687 # 替换为你获取到的实际坐标
DELAY_SEND = 5 # 每条消息间隔秒数
LOOP_TIMES = 10 # 循环次数
for line in list(content.split("\n")) * LOOP_TIMES:
if line.strip(): # 跳过空行
# 点击目标位置激活输入框
pag.click(SEND_X, SEND_Y)
# 复制内容到剪贴板
pyperclip.copy(line)
# 粘贴内容
pag.hotkey("ctrl", "v") # Mac 系统请改为 command+v
# 模拟回车发送
pag.typewrite("\n")
# 等待间隔
time.sleep(DELAY_SEND)
参数说明:
SEND_X, SEND_Y:需根据实际窗口调整。DELAY_SEND:控制发送频率,过快可能触发风控。LOOP_TIMES:控制发送总次数。若不需要循环,可将 list(content.split("\n")) * LOOP_TIMES 改为 content.split("\n")。
上述方法基于模拟键鼠操作,适用于任何有图形界面的应用(QQ、微信桌面版等)。更高级的实现方式是通过官方 API 直接发送消息(如企业微信 API、钉钉机器人等),这种方式更稳定且不易被检测,但需要申请相应的权限和 Token。
pag.FAILSAFE 或调整 pag.PAUSE。pyperclip 已正确安装,且剪贴板未被占用。通过调整上述参数,你可以灵活定制自动化脚本,满足不同的工作场景需求。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online