Python实现自动发消息自定义内容的操作代码
作者:退休的龙叔 发布时间:2023-10-17 18:01:53
有时候让了解放双手,让电脑来帮我们自动发一些我们想要发的消息,挺省力的,比如说白天写好了演讲稿,晚上要在群里进行文字演讲,那么我们就可以用脚本来实现自动复制、粘贴和发送文字的功能,从而解放我们自己,不用亲自在电脑上反复干这个Ctrl C/Ctrl V这个累活儿。
还可以把定时多长时间后发送指定内容,这下子就不用坐在电脑前面到点了发弹幕了。
多长时间发1条消息,又或者1秒发多少条信息,都可自由设置,时间设得短的话,一秒发几十条都没问题,只是太快了会形成刷屏的效果…
今天就把这个技巧给大家分享一下,很简单,没有多少代码。
一、效果
我们先来看一下效果,我这里设置的是4s后开始发送,间隔0.5s发一次。
用Python实现电脑自动发消息,内容自定义,快慢均可
二、开发环境
系统:Windows10 64位
Python版本:3.9
Pycharm版本:2021.1.3
模块(库):os、time、pyautogui、pyperclip
三、关键步骤解析
实现的代码文件主要有两个,目的分别是:获取聊天窗口位置和实现自动发送消息功能,用到的库在上面已经提过了,在开始写代码之前,先把要用的库先pip下载装好,下面就不再说这个了。
1.获取聊天窗口位置(源码1)
在我们发消息之前,得需要知道聊天窗口的位置在哪,即鼠标停留在哪里才能定位到聊天窗口的输入界面,也就是鼠标的x和y坐标是多少。
这里我用的是os、time和pyautogui这三个库,获取鼠标的实时位置的:
try:
while True:
print("Press Ctrl-C to end")
x, y = pag.position() # 返回鼠标的坐标
posStr = "Position:" + str(x).rjust(4) + ',' + str(y).rjust(4)
print(posStr) # 打印坐标
time.sleep(0.2)
os.system('cls') # 清楚屏幕
except KeyboardInterrupt:
print('end....')
只要程序运行起来之后,每当我们移动鼠标,鼠标的x和y值就会自动发声改变并打印出来,我们只需要把聊天窗口调出来,把鼠标定位到聊天的窗口的输入位置就能获取到此时的x和y值,有了这个x和y值之后,我们才能告诉下面的发消息程序要在哪里进行粘贴和推送。
当然了,获取鼠标位置的方式有很多种,你们也可以去尝试一下其他方式的获取。
2.实现自动发送消息功能
在获取了x和y的值之后,我们要做的当然是写程序实现“复制文本→粘贴文本→发送消息”,这里就需要用到 pyautogui 来控制键盘和鼠标,用 pyperclip 来控制电脑进行复制和粘贴,以及用 time 这个库进行一下时间的控制。
首先我们把需要发送的内容提前准备好,放在content里面,到时候直接拿来用就可以了,内容可以自定义修改,比如这样的:
content = """
呼叫龙叔!
第二遍!
第三遍!
第四遍!
第五遍!
"""
我们在运行代码之后需要切换到聊天界面,中间需要时间去手动做一下这个操作,所以在复制粘贴和发送代码之前,我们需要留出一些时间给自己,我这里先设定了4s的时间延迟,当然也可以设置几个小时之后开始发消息。
time.sleep(4)
接下来就是怎么实现复制粘贴和发送了:
for line in list(content.split("\n"))*10:
if line:
pyautogui.click(669,687) #鼠标点击并定位到聊天窗口
pyperclip.copy(line) #复制该行
pyautogui.hotkey("ctrl","v") #粘贴,mac电脑则把ctrl换成command
pyautogui.typewrite("\n") #发送
time.sleep(5) #每次发完间隔5s
到了这里,所有的东西就已经完成了,如果觉得5s发送1条消息太快,可以修改time.sleep(5)里面的5这个数值,比如说10s发一条消息;如果你设置成0.01秒,那么就会是一个快速发消息的刷屏效果了…
for循环中的“*10”控制循环次数,也就是让它发10次文本的样子,也可以设置不让它循环,把 list(content.split("\n"))*10 改成 content.split("\n") 即可。
大致的方法就是上面这些,需要源码可以私聊我,你们也可以去尝试别的方式实现,说白了就是自动发消息,实现方式有很多种,比如更高级一点的直接带着xookie调api发送等等,以及按键精灵也是能实现这个功能,更多精彩,等你自己去挖掘了。
来源:https://blog.csdn.net/zhiguigu/article/details/119729103
猜你喜欢
- 执行环境会负责管理代码执行过程中使用的内存,编写JavaScript程序时,所需内存的分配以及无用内存的回收完全实现自动管理。原理:找出那些
- 方法一一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大1、设置数
- INI介绍INI是英文“初始化”(initialization)的缩写,被用来对操作系统或特定程序初
- 代码如下:var obj = document.getElementById("name"
- 本文以实例演示5种验证码,并介绍生成验证码的函数。PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session
- 实现原理:将用户信息保存在数据库中,若能在数据库中检索到用户输入的姓名和口令,就允许访问该一页面。代码如下:protect.asp<h
- 本文实例讲述了Python使用matplotlib简单绘图。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#!
- XML和XSLT的转换使Web设计受益无穷。借助XML和 XSLT转换,你可以实现将动态用语(dynamic verbiage)和网站内容存
- 数据安全是任何数据服务解决方案中的一个关键要求,而Windows Server 2008和SQL Server 2008结合起来,通过一个基
- Oracle9i之前,中文是按照二进制编码进行排序的。在oracle9i中新增了按照拼音、部首、笔画排序功能。 1、
- 姓名的翻译: 英语是名(First name)在前,姓(Last name)在后。中文地址的翻译:如果你英语水平不高,填表时只要国家名用英语
- 写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,
- 本文列出了HTML4标签的默认样式列表,对网页设计者来说这个应该很有用。原文来自:W3C (http://www.w3.org/TR/CSS
- 1、简单的按钮js事件 用于判断和显示提示 <script type="text/javascript&
- “模板化”——这也许是视觉设计师通常最不愿意听到的概念,先入为主的会产生“批量生产”、“体力活儿”、“限制思维”等概念,总之都比较负面。但为
- 我们平日办公时用得最多的软件是Execl、Word或WPS Office等,你的计算机中一定储存着大量的XLS、DOC、WPS文件吧!网页制
- (5)SELECT (5-2) DISTINCT(5-3)TOP(<top_specification>)(5-1) <s
- 在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON。数据中有个字段叫 content,里面保存了文章内容,
- 最近在做学院的选课系统时,在分页上被卡壳了一下,因为需要用到排序,所以不能像以前一样用一个自动递增的字段作为主键,然后仅仅是对这个主键来做统
- 内容摘要:本文介绍了asp使用正则表达式自动解析远程图片地址并下载保存的方法,值得收藏!一、使用正则表达式Regexp匹配取得原页中的图片的