python入门(三) 实现QQ自动发送消息

前言

前面二章简单过了一下python的基本知识,最近刚好需要实现QQ自动发送消息的脚本,于是便拿python来练手。

业务逻辑

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

#发送的消息
msg = "测试代码"
#窗口名字
name = "不知"
#将测试消息复制到剪切板中
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, msg)
w.CloseClipboard()
#获取窗口句柄
handle = win32gui.FindWindow(None, name)
#while 1==1:
if 1 == 1:
    #填充消息
    win32gui.SendMessage(handle, 770, 0, 0)
    #回车发送消息
    win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

 

  • 67
    点赞
  • 350
    收藏
    觉得还不错? 一键收藏
  • 74
    评论
要使用Python发送QQ消息,可以使用qqbot库。qqbot是一个基于QQ协议的机器人框架,可以通过它来进行QQ消息发送和接收。 首先,需要安装qqbot库。可以通过在命令行中输入以下命令来安装qqbot: ``` pip install qqbot ``` 安装完成后,可以创建一个Python脚本,并使用以下代码发送QQ消息: ```python from qqbot import QQBot # 创建一个自定义的QQBot class MyQQBot(QQBot): def onStartupComplete(self): # 在QQBot启动完成后,向指定QQ发送一条消息 self.send('group', u'群号/好友QQ号', u'你好,我是QQBot!') # 创建一个QQBot实例并启动 myqqbot = MyQQBot() myqqbot.login() # 使用QQ号和密码登录QQ myqqbot.run() # 运行QQBot ``` 以上代码中,我们创建了一个自定义的QQBot类,继承了qqbot库中的QQBot类,并在onStartupComplete方法中编写需要执行的操作。在这个例子中,我们在QQBot启动完成后,向指定的QQ发送了一条消息。 需要注意的是,在进行消息发送之前,需要先在`self.send()`方法中指定消息的类型和接收方的QQ号。消息类型可以是`group`或`buddy`,分别代表群组消息和好友消息。接收方的QQ号可以是群组号或好友的QQ号。 另外,在实际使用时,需要先登录QQBot,可以使用自己的QQ号和密码登录。登录成功后,就可以通过`myqqbot.run()`来启动QQBot,并开始发送QQ消息。 以上就是使用Python发送QQ消息的简单示例。当然,要实现更复杂的功能,还需要进一步了解qqbot库的使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 74
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值