利用Python实现QQ、微信消息定时发送/自动发送

利用Python实现QQ、微信消息定时发送/自动发送【支持发送文件】[Python常见问题]

安装环境

python 3.5
PyQt5==5.15.1
pywin32==228

代码

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:623406465

目的:按时提交英语作业
思路:将要发送的内容保存到剪切板,激活相应的窗口,再使用C-v黏贴到窗口中,A-s发送出去。
发送文字消息时,可以将文字先保存在文件message.txt中,文件内容举例:

嗯嗯?
2022的话 这个就比较赞了
那我可以考虑换个笔记本了
出个新版本就换本子?什么情况
怕卡
[群签到]请使用新版QQ进行查看。
早
早上好
大家好
以前哪个win10下载器谁有吗
去i tell you下

注意:

  1. 仅适用于windows系统
  2. QQ、微信发送窗口要打开,不能最小化,但是可以不在最上面一层(即,可以在没有被激活的状态)
  3. 不可以用于微信、QQ消息轰炸等危险用途,一切问题后果自负
import win32con
import win32gui, win32api
import win32clipboard as w
import time
from random import choice
from PyQt5 import QtCore,QtWidgets
from datetime import datetime
import time

class sendMsg():
    def __init__(self,receiver,msg):
        self.receiver=receiver
        self.msg=msg

    def winUpLoadFile(self):
        # 将文件复制到剪切板
        app = QtWidgets.QApplication([])
        data = QtCore.QMimeData()
        url = QtCore.QUrl.fromLocalFile(self.msg)
        data.setUrls([url])
        app.clipboard().setMimeData(data)
        clipboard = QtWidgets.QApplication.clipboard()
        
        self.sendmsg()
    
    def sendText(self):
        #设置剪贴版内容
        w.OpenClipboard()
        w.EmptyClipboard()
        w.SetClipboardData(win32con.CF_UNICODETEXT, self.msg)
        w.CloseClipboard()

        self.sendmsg()
    #发送消息
    def sendmsg(self):
        qq=win32gui.FindWindow(None,self.receiver)
        win32gui.GetClassName(qq)  # 获取窗口classname
        title = win32gui.GetWindowText(qq)  # 获取窗口标题
        win32gui.GetDlgCtrlID(qq)
        win32gui.SetForegroundWindow(qq)  # 激活窗口

        #粘贴内容
        win32api.keybd_event(17, 0, 0, 0)  # ctrl键位码是17
        win32api.keybd_event(86, 0, 0, 0)  # v键位码是86
        win32api.keybd_event(86, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放按键
        win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)

        #发送内容
        win32api.keybd_event(18, 0, 0, 0)  # Alt
        win32api.keybd_event(83, 0, 0, 0)  # s
        win32api.keybd_event(83, 0, win32con.KEYEVENTF_KEYUP, 0)  # 释放按键
        win32api.keybd_event(18, 0, win32con.KEYEVENTF_KEYUP, 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="测试群聊"#这里填入接收者的备注名 
    date_sche = 17 # 17日
    time_sche = 15 # 15时。需要更精确的时间可以调整后面的if条件以及sleep时间
    while True:
        date_now = datetime.now()
        if date_now.day == date_sche and date_now.hour == time_sche:
            # msg = getmessage("message.txt") # 设置消息
            filename = "G:Users1Desktop英语作业.docx" # 设置文件
            qq=sendMsg(receiver, filename)
            # qq.sendText() # 发送消息
            qq.winUpLoadFile() # 发送文件
        time.sleep(3600)

if __name__ == "__main__":
    main()
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 利用Python实现QQ、微信消息定时发送/自动发送