美文网首页
python学习之 实现QQ自动发送消息

python学习之 实现QQ自动发送消息

作者: 现在_未来 | 来源:发表于2020-05-28 18:16 被阅读0次

    业务逻辑

    1、打开需要发送消息的窗口

    2、锁定该窗口

    3、将需要发送的内容放到QQ窗口

    4、模拟按键发送enter键发送消息(QQ发送消息有二种方式Enter/Ctrl+Enter,本次案例使用Enter)

    环境

    win10 + python3.7.1

    从业务上看,程序需要对window的窗口进行操作,应此需要安装pywin32来访问win32API

    pywin32库

    锁定QQ窗口

    锁定窗口使用win32gui库中的FindWindow函数

    定义:

    HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName)

    参数:

    IpClassName:指向类名

    IpWindowName:指向窗口名

    返回值:

    有指定的类名和窗口的名字则表示成功返回一个窗口的句柄。否则返回零。

    由于不清楚QQ窗口所使用的类名,应此我们只需在IpWindowName填上聊天对象的名字就好

    例如

    handle = win32gui.FindWindow(None, “XXX聊天群”)

    填充消息

    填充消息使用win32gui库中的SendMessage函数

    定义:

    LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)

    参数:

    hWnd :窗口句柄

    Msg:指定被发送的消息。

    wParam:指定附加的消息特定信息。

    IParam:指定附加的消息特定信息。

    例如:

    #将剪切板中内容填充到窗口中

    win32gui.SendMessage(handle, 770, 0, 0)

    发送消息

    填充消息使用win32gui库中的SendMessage函数

    #向窗口发送回车消息

    win32gui.SendMessage(handle, win32cin.WM_KEYDOWN, win32con.VK_RETURN, 0)

    测试代码

    import win32gui

    import win32con

    import win32clipboard as w

    import time

    #发送的消息

    msg = "测试代码"

    #窗口名字

    name = "python学习群 1002942851 "

    #将测试消息复制到剪切板中

    w.OpenClipboard()

    w.EmptyClipboard()

    w.SetClipboardData(win32con.CF_UNICODETEXT, msg)

    w.CloseClipboard()

    #获取窗口句柄

    handle = win32gui.FindWindow(None, name)

    while True:

        #填充消息

        win32gui.SendMessage(handle, 770, 0, 0)

        #回车发送消息

        win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

        time.sleep(30)

    ————————————————

    版权声明:本文为CSDN博主「stone15165」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/stone15165/article/details/106410529

    相关文章

      网友评论

          本文标题:python学习之 实现QQ自动发送消息

          本文链接:https://www.haomeiwen.com/subject/mvnaahtx.html