前两章简要介绍了python的基本知识,最近需要实现QQ自动发送消息的脚本,从而得到了python。
业务逻辑1,打开需要发送消息的窗口
2、锁定此窗口
3、将发送的内容放入QQ窗口
4、模拟按钮发送enter按钮发送消息(QQ发送消息有两种方式Enter/Ctrl Enter,在此情况下使用enter ) )。
环境win10 python3.7.1
出于业务考虑,程序需要操作窗口窗口,相应地需要安装pywin32以访问win32API
pywin32下载地址
QQ窗口锁定窗口使用win32gui库中的FindWindow函数
定义:
hwnd findwindow (lpctstripclassname,lpctstr IP窗口名称)。
参数:
IpClassName :指定类名
IP窗口名称:指定窗口名称
返回值:
如果有指定的类名和窗口的名称,则表示窗口句柄已成功返回。 否则我会还给你零。
因为不知道QQ窗口中使用的类名,所以应该在IpWindowName中输入聊天对象的名称即可
例如
handle=win32 GUI.findwindow (none,' XXX聊天组) ) ) )。
要输入消息,请使用win32gui库中的SendMessage函数
定义:
lesultsendmessage(hwndhwnd、UINT Msg、WPARAM wParam、LPARAM IParam ) )。
参数:
hWnd :窗口句柄
Msg :指定要发送的消息。
wParam :指定其他消息特定信息。
IParam :指定其他消息特定信息。
例如:
#将剪贴板内容填充到窗口中
win32 GUI.sendmessage (手持,770,0,0 ) )。
使用win32gui库中的SendMessage函数发送消息输入消息
#向窗口发送回车的信息
win32GUI.sendmessage(Handle,win32cin.WM_KEYDOWN,win32con.VK_RETURN,0 ) )
测试代码import win32 guiimportwin 32 conimportwin 32 clipboard ASW #发送的消息msg='测试代码' #窗口名称name='未知' # 将测试消息复制到剪贴板w.open clipboard (w.w w.setclipboarddata (win32 con.cf _ unicode text, msg ) w.CloseClipboard ) #获取窗口句柄handle=win32 GUI.findwindow none name (# while1==1: if1==1: #填充网格