循环定时向qq对话框中发送消息

简介: 实现在一个及多个qq窗口定时循环发送消息
在qq中重复发消息,利用网上的操作代码,自己定义了一个类,用多线程和定时实现对一个qq弹窗循环定时发消息。https://github.com/Wn-Dev/qq_send_messages 
# 原理是先将需要发送的文本放到剪贴板中,然后将剪贴板内容发送到qq窗口
# 之后模拟按键发送enter键发送消息

import win32gui
import win32con
import win32clipboard as w
import time
import threading

class SendMessage:
    to_who =''
    msg=''

    def __init__(self,t,m):
        self.to_who = t
        self.msg = m

    def getText(self):
        """获取剪贴板文本"""
        w.OpenClipboard()
        d = w.GetClipboardData(win32con.CF_UNICODETEXT)
        w.CloseClipboard()
        return d

    def setText(self):
        """设置剪贴板文本"""
        w.OpenClipboard()
        w.EmptyClipboard()
        w.SetClipboardData(win32con.CF_UNICODETEXT,self.msg)
        w.CloseClipboard()

    def send_qq(self):
        """发送qq消息
        to_who:qq消息接收人
        msg:需要发送的消息
        """
        # 将消息写到剪贴板
        self.setText()
        # 获取qq窗口句柄
        qq = win32gui.FindWindow(None, self.to_who)
        # 投递剪贴板消息到QQ窗体
        win32gui.SendMessage(qq, 258, 22, 2080193)
        win32gui.SendMessage(qq, 770, 0, 0)
        # 模拟按下回车键
        win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
        win32gui.SendMessage(qq, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
    # def display(self):
    #     print(self.to_who)
        
if __name__ =='__main__':
    num=0
    #msg:你想输入的消息
    msg=''
    #to_who_x: 用于qq的消息窗口
    to_who_1 = ""
    to_who_2 =""
    m1 = SendMessage(to_who_1,msg)
    m2 = SendMessage(to_who_2,msg)

    while True:
        t1= threading.Thread(target= m1.send_qq())
        t2= threading.Thread(target= m2.send_qq())

        t1.start
        t1.join
        t2.start
        t2.join
        print(num)
        num=num+1
        time.sleep(30)
目录
相关文章
|
人工智能 算法 搜索推荐
AIGC技术背景下的商业模式创新
【1月更文挑战第9天】AIGC技术背景下的商业模式创新
524 2
AIGC技术背景下的商业模式创新
|
存储 负载均衡 调度
Docker 多主机部署:构建容器集群的最佳实践,助力高可用性与负载均衡
Docker 多主机部署:构建容器集群的最佳实践,助力高可用性与负载均衡
1170 0
|
关系型数据库 MySQL 数据库
Docker快速上手:使用Docker部署Drupal并实现公网访问
Docker快速上手:使用Docker部署Drupal并实现公网访问
|
应用服务中间件 nginx
Centos7.3 卸载 Nginx(彻底卸载) 并重新安装 Nginx(RPM源yum安装)
Centos7.3 卸载 Nginx(彻底卸载) 并重新安装 Nginx(RPM源yum安装)
1281 0
Centos7.3 卸载 Nginx(彻底卸载) 并重新安装 Nginx(RPM源yum安装)
|
3月前
|
Ubuntu 网络安全 PHP
使用Ubuntu与宝塔搭建IT资产管理系统 - Chemex
随着企业员工增多,Excel和Microsoft List已无法满足IT资产管理需求。本文对比了三款免费系统:Snipt-it、GLPi 和国产 Chemex,最终选择界面友好、易用性强的 Chemex。文章详细介绍了在宝塔环境下部署 Chemex 的全过程,包括环境搭建、网站配置、数据库设置、权限管理及后续维护方法,适合中小企业快速搭建高效的 IT 资产管理系统。
|
10月前
|
机器学习/深度学习 文字识别 自然语言处理
医疗行业化验单智能识别技术探讨:OCR与表格识别的应用
本文探讨了OCR与表格识别技术在医疗化验单处理中的应用,通过自动化数据提取和录入,显著提高了效率和准确性,降低了人工劳动强度和错误率。技术实现包括图像预处理、文字识别和表格解析等核心算法的优化,支持与医院信息管理系统集成,未来将向跨模态数据融合、多语言适配及数据安全方向发展。
1068 9
|
关系型数据库 MySQL Java
连接MySQL 8.0时报错caching_sha2_password解决方案
连接MySQL 8.0时报错caching_sha2_password解决方案
865 0
|
自然语言处理 机器人 API
GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合+GPT等等
GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合+GPT等等
|
前端开发 C++
css实用技巧——锁定页面,禁止滚动 vs 解锁页面,恢复滚动
css实用技巧——锁定页面,禁止滚动 vs 解锁页面,恢复滚动
448 0