QQ发送消息
发布于 9 个月前 作者 yutiansut 331 次浏览 来自 代码实现

主要是依赖窗口检测 话不多说 直接看代码

import win32gui
import win32con
import win32clipboard as w
import time


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


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


def send_qq(towho, msge):
    """发送qq消息
    to_who:qq消息接收人
    msg:需要发送的消息
    """
    # 将消息写到剪贴板
    setText(msge)

    # 获取qq窗口句柄
    qq = win32gui.FindWindow(None, towho)
    print(qq)
    while qq == 0:
        qq = win32gui.FindWindow(None, towho)
    print(qq)

    # 投递剪贴板消息到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)


""" -------------------------------- 测试 --------------------------------- """

send_qq(u'QUANTAXIS 开源量化', '这是一条测试消息-----xxxx')
time.sleep(3)
2 回复

image.png 卡在模拟回车那里,聊天框出现了文字但是没有发送成功。。。QQ设置里是回车键发送消息没错,奇了怪了

回到顶部