前言

前面二章简单过了一下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)

python入门(三) 实现QQ自动发送消息相关推荐

  1. Python之给微信好友自动发送消息

    由于itchat运行时,老是报KeyError: 'pass_ticket',故itchat暂不能使用.而wxpy在使用时需要登录网页版微信,且动不动报KeyError: 'pass_ticket,所 ...

  2. python入门三:文件操作

    一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 1 f = open("xxx") # 打开文件并获取文件对象 2 f.xxx # 对文件进行某 ...

  3. Python入门三:安装Pyqt5

    一.安装 1.官网:www.riverbankcomputing.com 2.使用命令安装,可以自动去官网查找与Python版本号相同的程序进行下载,比较方便,如果不是这样也可从PyQt官网上下载与P ...

  4. Python入门(三) 列表和元组

    Python 列表和元组 类似C语言的数组: 列表 列表的类型(list): 列表的添加 列表的删除 列表的分片(拷贝) ':' 列表的拼接 列表的比较 列表的多次增加(同一个数据) 列表的查找 列表 ...

  5. autoit几行代码实现QQ自动发送消息,点赞,去空间留言。

    情不知所起一往而深! 所以呢,每天必须留言,点赞,去空间. 我想我可是擅长(装逼)自动化的啊,怎么能,像这些重复的事情怎么能去干呢, 第一个想到的是appium,好久不弄了,算了不想拾起了. 马上想到 ...

  6. 轻轻松松学会Python入门三:经典实例-温度转换

    目录 一,问题的解决 1,首先,我们分析问题: 2,划分边界: 3,设计算法: 4,编写程序: 5,调试测试: 6,升级维护: 二,程序语法元素分析 1,程序的格式框架 2,注释 1)标明作者和版权信 ...

  7. 利用python进行企业微信机器人自动发送消息

    def test_004_robot(self):headers = {"Content-Type": "text/plain"}s="卖品,打印码: ...

  8. 类中的属性和方法(Python入门三十三)

    # 定义一个类 class A(object): # 类属性     # 实例属性     # 类方法     # 实例方法     # 静态方法 # 类属性,直接在类中定义的属性是类属性     # ...

  9. 多态(Python入门三十二)

    面向对象的三大特征之一(多态) - 多态是面向对象的三大特征之一        多态从字面上理解是多种形态        狗(狼狗.藏獒.哈士奇.古牧 ...)        一个对象可以以不同的形态 ...

  10. C++ TIM或者QQ 自动发送消息

    简单写了一下 很简单的demo 闲着没事干 #include "stdafx.h" #include <thread> #include <Windows.h&g ...

最新文章

  1. 二十二、插值查找算法
  2. 算法--------数组类---------总结
  3. Price determination entry point - how is 4.85 calculated
  4. 车架号查车辆型号_【菜鸟二手车大讲堂】第十一讲 经常提到的汽车车架号是什么?...
  5. 手机编程环境初尝试-用AIDE开发Android应用
  6. Java虚拟机中的堆(Heap)
  7. JDK API下载
  8. 彪悍的人生不需要解释,需要解释的人生是软弱的
  9. 计算机excel数据模板,excel表格范本
  10. python print空格占位_python的占位格式符 %
  11. Linux 常见命令四大类
  12. BAT有增有减nbsp;互联网2015校园…
  13. 2020焊工(技师)考试题及焊工(技师)复审模拟考试
  14. 一站式智能运维解决方案,企业系统的隐形守护者
  15. SQLALCHEMY_TRACK_MODIFICATIONS adds significant异常的解决方法
  16. 单词测试通关学英语的软件,学习软件有哪些,给大家推荐一款靠谱的 | 外教英评网...
  17. Python 图片透明化:使用代码轻松实现图片的透明化效果
  18. 【毕业设计】基于微信小程序的在线学习平台 在线学习微信小程序
  19. 使用dreamweaver制作采用DIV+CSS进行布局【我的家乡主题网站制作】
  20. Android 获取root权限 (诺基亚N1平板)

热门文章

  1. 批量创建文件夹-批处理(一)
  2. c语言数组存在哪个地方,C语言数组考点归纳
  3. 钉钉考勤报表生成工具
  4. iPhone升级iOS 15卡在请求更新上怎么办?
  5. 短视频完美开源源码 后台+APP双端源码
  6. 第三讲:验证码点击刷新
  7. X-VECTORS: ROBUST DNN EMBEDDINGS FOR SPEAKER RECOGNITION论文翻译
  8. ubantu安装搜狗常见问题
  9. 傅里叶变换中的假频**
  10. AUTOCAD——超级填充命令3