python入门(三) 实现QQ自动发送消息 | 您所在的位置:网站首页 › 在qq群里发代码怎么发 › 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)
|
CopyRight 2018-2019 实验室设备网 版权所有 |