使用VC++编写QQ群发器,MFC做UI
由于公司业务需要,QQ群发器经常被用来发送QQ广告,购买的QQ群发器不好用不说,而且是按机器收费的,有些功能还不能修改.
所以公司派我来开发一款自己的QQ群发器,我给群发器取名叫做飞速群发器,用来给软件外包群发送搞笑的笑话,避免被踢.
第一选择UI方面,我选择了最简单,最通用的MFC框架,拖几个控件不一会功夫就将UI设计好了,下面是UI的初步样子:

剩下的就是如何控制QQ发送消息.
我们发送消息,先进行分解
1.第一步打开需要发送的聊天窗口
2.找到要发送的聊天窗口
3.将要发送的内容填写到输入框
4.点击发送按钮
5.关闭聊天窗口.
先解决最简单的发送问题:
第一步:将要发送的内容放到聊天窗口
由于QQ是采用了自绘窗口来开发的,所以普通获取控件点发送的方式无效.
所以发送内容就只能通过复制粘贴到输入框中.
1.将要发送的内容复制到粘贴板
2.将粘贴的命令发送到聊天窗口.
第二步:发送消息
发送消息只能有2种方式:
1.通过模拟发送快捷键发送消息.
2.通过模拟鼠标点击发送QQ消息.
经过测试,这两种方式中,发送快捷方式是最靠谱的,因为模拟点击的方式,由于电脑分辨率不一样导致的UI位置也不一样.
会出现点不到的情况.
所以我这里采用的是模拟按键的方式. 模拟按Enter发送消息.
完成了上面的发送消息的基础部分,剩下的就是要完成一个个的QQ群自动打开的过程.
这里通过模拟上下安检的方式移动位置,按回车键打开窗口.
到此所有的工作已经完成.
下面是几张成果截图:


总结下:
本软件跟其他群发软件的区别以及特色:
1.飞速群发器软件功能实现还是很简单,没有做群组,单个群发,我觉得这个没那么必要。因为QQ会限制群发消息的数量。不如在群里群发来的效率高
2.飞速群发器软件实现了最常用的单一内容群发,在这个基础上还是先了多内容随机群发,实现方式是用文本文件方式,放在特定目录里面就行,程序自动去目录找
这比直接在软件上做管理功能简单高效。群发不同的内容只要创建几个不同的文件夹就行。
3.飞速群发器实现了群名称过滤功能,这里没有直接列出群,一个个让用户去选择,这种很低效率,我采用了关键词包含与排除的办法实现,这样子简单,需要发送的
关键词只要包含在群名称中,就给这个群发送,如果同时包含关键词和排除关键词,则不发送关闭打开下一个群。
4.软件发送过的群会记录住,在2个小时内不会同一个群里发送同样的内容。
5.软件附带群发记录功能,能将发送统计结果,以txt文件的方式导出,方便统计发送的情况。
使用VC++编写QQ群发器,MFC做UI的更多相关文章
- 一步步打造QQ群发消息群发器
最近为了做公众号号推广,吸粉,然后加了几百个QQ群,感觉QQ群的群发效果还是不错的,一天能捞到100个粉丝左右,好的时候也有200个,少的时候几十个,但是由于太多的群了,手工一个个点击开来群发,几百个 ...
- C++、VC++、MFC网页自动注册、登陆、发帖、留言,QQ注册、QQ申请器源码、注册邮箱源码、自动发帖源码
C++.VC++.MFC网页自动注册.登陆.发帖.留言,QQ注册.QQ申请器源码.注册邮箱源码.自动发帖源码 参考资料: 自动登录yahoo邮箱http://blog.csdn.net/suisu ...
- 用VC++MFC做文本编辑器(单文档模式)
用VC++MFC做文本编辑器(单文档模式) 原来做过一个用对话框实现的文本编辑器,其实用MFC模板里面的单文档模板也可以做,甚至更加方便,适合入门级的爱好者试试,现介绍方法如下: < xmlna ...
- VC++编写简单串口上位机程序
VC++编写简单串口上位机程序 转载: http://blog.sina.com.cn/s/articlelist_1809084904_0_1.html VC++编写简单串口上位机程序 串口通信 ...
- OC编写使用调试器
OC编写使用调试器 编写代码免不了,Bug.那么Debug就是程序员的必备技能了.本文和大家一起探讨,如何在应用开发编写代码过程中,使用日志项消息:以及使用动作.条件.迭代控制增强断点. 记录信息 在 ...
- jQueryMobile 网页在UC等游览器上无法正常显示或者是无法自适应设备大小,但在QQ游览器上能正常显示的解决方法
造成jQueryMobile网页在QQ游览器上能正常显示,在UC等游览器上无法正常显示或者是无法自适应设备大小的解决方法: 在<head>标签间添加<meta name=" ...
- VC++中操作XML(MFC、SDK)转
[转]VC++中操作XML(MFC.SDK) XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini.VC++ ...
- C#编写媒体播放器--Microsoft的Directx提供的DirectShow组件,该组件的程序集QuartzTypeLib.dll.
使用C#编写媒体播放器时,需要用到Microsoft的Directx提供的DirectShow组件.用该组件前需要先注册程序集QuartzTypeLib.dll. 1.用QuartzTypeLib.d ...
- 远程控制编写之屏幕传输 MFC实现 屏幕截图 发送bmp数据 显示bmp图像
远程控制编写之屏幕传输 MFC实现 屏幕截图 发送bmp数据 显示bmp图像: 一 : 首先要了解bmp图像的结构 详情请看我转载的一篇文章http://blog.csdn.net/hnust_x ...
随机推荐
- WebService注解汇总
Web Service 元数据注释(JSR 181) @WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值 ...
- 网络编程-获取ip-解析ip
import java.net.InetAddress; import java.net.UnknownHostException; /** * 查询ip地址 * * @author chengluc ...
- Android5.1修改以太网MAC地址(SElinux)【转】
本文转载自:http://blog.csdn.net/LoongEmbedded/article/details/71477203 最近高通平台Android5.1项目中有个关于设置以太网MAC的需求 ...
- Buildroot 龙芯1C支持指南
本文转载自:https://github.com/pengphei/smartloong-sphinx/blob/master/source/cn/loongson1c_buildroot_guide ...
- BZOJ_1067_[SCOI2007]降雨量_ST表
BZOJ_1067_[SCOI2007]降雨量_ST表 Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意 Y<Z< ...
- 视图表单访问控制器操作方法的POST、GET方式对应关系
在视图中,表单默认访问方式是FormMethod.Post(不会将请求显示在地址栏中).在控制器中,操作方法不标注属性,默认为HttpGet属性.会有以下情况出现. 1.表单不指定访问方式(默认形式为 ...
- java日期和时间戳格式互转
// 将日期格式转换成时间戳 public static void main(String[] args) throws Exception{ String time = "2018-05- ...
- Find offset of first/last found substring
DATA: TEXT TYPE STRING VALUE 'RO_LL_OVER BEET_HOVEN', MOFF TYPE I VALUE '-1'. FIND FIRST OCCURRENCE ...
- Linux 常用命令八 find
一.find命令 find命令用于查找文件. 按文件名字查找: wang@wang:~/workpalce/python$ sudo find / -name "create.txt&quo ...
- python 面向对象五 获取对象信息 type isinstance getattr setattr hasattr
一.type()函数 判断基本数据类型可以直接写int,str等: >>> class Animal(object): ... pass ... >>> type( ...