查看: 78|回复: 0

[转载图文] python定时发送QQ消息

[复制链接]
发表于 2020-5-4 00:26:51 | 显示全部楼层 |阅读模式
                                                                                        博客简介  前言:
额,我也不知道为啥群里的小伙伴就。。开始抢龙王了???这个龙头有啥用吗?这伙人,也许闲出毛病了。好吧,我也是,但是一条一条发消息真的很累a,所以想到用python自动发送消息——废话不说,开始吧,龙王是我。
  • 安装pywin32库
  • 定义消息发送类
  • 获取消息
  • 定时
  • 运行
安装pywin32库  pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量、接口、线程以及COM机制…我们这里的QQ消息发送则用到了pywin32下的窗口历遍,消息发送,剪切板等API,正式使用之前,pip安装:

python定时发送QQ消息

python定时发送QQ消息

定义消息发送类  这个类要实现的功能是将消息复制到剪切板,然后历遍窗口找到我们的接收者,将消息发送:
class sendMsg():
    def __init__(self,receiver,msg):
        self.receiver=receiver
        self.msg=msg
        self.setText()
    #设置剪贴版内容
    def setText(self):
        w.OpenClipboard()
        w.EmptyClipboard()
        w.SetClipboardData(win32con.CF_UNICODETEXT, self.msg)
        w.CloseClipboard()
    #找到消息发送窗口,发送消息
    def sendmsg(self):
        qq=win32gui.FindWindow(None,self.receiver)
        win32gui.SendMessage(qq,win32con.WM_PASTE , 0, 0)
        win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
        print("sucessfuly send",self.msg)
获取消息  我们发送的消息从何而来?这里我是复制的之前我在群里的消息记录,然后过滤掉一些无用信息,存入文件中。然后再从文件中随机获取一条消息,提供给消息发送类
  (1)复制群消息记录粘贴在txt中

python定时发送QQ消息

python定时发送QQ消息

(2)过滤掉其中的头衔,换行等等,写到message.txt文件中:
def main():
f=open('test.txt','r',encoding='utf-8')
lines=""
for x in f:
if ('【' in x) or (x=='\n'):continue
lines+=x
f.close()
f=open('message.txt','w',encoding='utf-8')
f.write(lines)
f.close()
main()
  可以看到过滤后的消息要简洁许多

python定时发送QQ消息

python定时发送QQ消息

(3)随机获取message文件中的一条消息:
def getmessage(fileName):
    f=open(fileName,'r',encoding='utf-8')
    lines=f.readlines()
    f.close()
    return choice(lines)
定时  定时我们可以用到time库中的sleep,单位为s,套在一个while循环中:
def main():
    receiver='XXXX'#这里填入接收者的备注名
    while True:
        msg=getmessage('message.txt')
        qq=sendMsg(receiver,msg)
        qq.sendmsg()
        time.sleep(randrange(60,10*60,60))
运行代码  最终代码实现如下:
import win32con
import win32gui
import win32clipboard as w
import time
from random import choice
from random import randrange

class sendMsg():
    def __init__(self,receiver,msg):
        self.receiver=receiver
        self.msg=msg
        self.setText()
    #设置剪贴版内容
    def setText(self):
        w.OpenClipboard()
        w.EmptyClipboard()
        w.SetClipboardData(win32con.CF_UNICODETEXT, self.msg)
        w.CloseClipboard()
    #发送消息
    def sendmsg(self):
        qq=win32gui.FindWindow(None,self.receiver)
        win32gui.SendMessage(qq,win32con.WM_PASTE , 0, 0)
        win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
        print("sucessfuly send",self.msg)

def getmessage(fileName):
    f=open(fileName,'r',encoding='utf-8')
    lines=f.readlines()
    f.close()
    return choice(lines)

def main():
    receiver='xxxx'#这里填入接收者的备注名
    while True:
        msg=getmessage('message.txt')
        qq=sendMsg(receiver,msg)
        qq.sendmsg()
        time.sleep(randrange(60,10*60,60))

if __name__ == '__main__':
    main()

python定时发送QQ消息

python定时发送QQ消息

好了,抱得龙儿归。

python定时发送QQ消息

python定时发送QQ消息

python定时发送QQ消息

python定时发送QQ消息
                                                                        飞翔的哈士奇                                                

python定时发送QQ消息

python定时发送QQ消息
                        

python定时发送QQ消息

python定时发送QQ消息
                                                                原创文章 220获赞 393访问量 6万+                                                                                            关注                                                                私信                                                                                                                           

温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046
快速回复 返回顶部 返回列表