QQ群发软件开发一
来源:互联网 发布:胡歌经纪人是谁知乎 编辑:程序博客网 时间:2024/09/21 08:53
QQ群发软件开发一:
一先确定开发方向,群发无非就是要让QQ自动发送。要实现这类运用有二个主要方式,一是通过协议就是直接按照QQ协议给服务器发信息,二是通控制QQ客户端,模拟人工发送的方式来发送。QQ协议给服务器发信息这是稳定的方式,但也是最难的方式,可以说这种方式在早期可以,但现在已不可行了。 因为QQ经过十多年的发展,其在信息安全性方面已经达到了一个高度。我们没有办法通过分析数据流得知QQ的数据协议、数据加密方式。因此这种想法只能放弃。现面前只有一条路就是通控制QQ客户端,模拟人工发送。最先想到的是模拟鼠标、键盘动作去控制QQ客户端,可是后面经过多次实践,这个方法可行性很差,软件移植性差。最后只能通过句柄与WINDOWS消息模式也来实现,即先取得QQ客户端的句柄,然后再给QQ句柄发送WINDOS消息。这种方式比单纯的鼠标、键盘脚本更为稳定,也不涉及到QQ通信协议的问题,唯一的问题是你要WINDOWS句柄、消息这类API绝对的把握 。还好本人在工作之初买有本《WINDOWS API 大全》,没有想到这本书在十多年后第一次派上了用场。
确定大方向之后, 再思考细节问题。第一个要解决的是我们怎样从众多的句柄中找到QQ进程句柄?还好现在VS用户有SPY++这个开发辅助工具。 通过这个工具我们能查看当前状态下的所有句柄。由将QQ开启状态下通过SPY++得到的句柄列表与QQ关闭下的句柄列表进行比较,我们可以发现在QQ开启状态下多了一个类型为 “5B3838F5-0C81-46D9-A4C0-6EA28CA3E942",句柄标题为 "qqexchangewnd_shortcut_prefix_"+”QQ NUMBER“的句柄。我们结合这个句柄的大小、位置信息可以确定这个就是QQ主程序的句柄。并且通过句柄标题"qqexchangewnd_shortcut_prefix_"+”QQ NUMBER,可以确立句柄与QQ帐号的对应关系。
const string CON_QQCLASSNAME = "5B3838F5-0C81-46D9-A4C0-6EA28CA3E942";// QQ主程序句柄类型
const string CON_QQPRETEXT = "qqexchangewnd_shortcut_prefix_"; //QQ_prestr+QQnumber //QQ主程序标题类型
public void LoadQQ()
{
if (addmsg != null)
{
addmsg("正在加载QQ信息...");
}
List<winHandle> qqlist = WinAPI.GetWinHandleList(CON_QQCLASSNAME);//得到QQ句柄列表
foreach (QQInfo qqinfo in _qqlist)
{
qqinfo.Dispose();
}
_qqlist.Clear();
foreach (winHandle qqhandle in qqlist)
{
if (qqhandle.WinText.IndexOf(CON_QQPRETEXT) >= 0)
{
//从QQ句柄标题建立句柄与QQ帐号的一一对应关系
string qqnumber = qqhandle.WinText.Substring(CON_QQPRETEXT.Length);
if (IsQQReged(qqnumber))
{
//生成一个QQ实例
QQInfo qqinfo = new QQInfo(qqnumber, qqnumber, 0, _qqconfig.IsMessageAddName);
if (this.checkmsg != null)
qqinfo.Checkmsg = this.checkmsg;
this._qqlist.Add(qqinfo);
qqinfo.qqconfig = this.qqconfig;
}
}
}
if (addmsg != null)
{
addmsg("QQ信息加载完成!");
}
}
建立了QQ帐号与QQ主程序对应关系,这只是我们迈出的第一步。要实现自动发送功能,还必须通过这个主程序句柄调出对话框,并得到QQ对话框句柄,对其进行操作。
以及我们还要解决当一台电脑有多个QQ帐号登录时,QQ对话框句柄的从属问题,确定我们电脑当前已打开的句柄从属于哪个QQ主程序句柄。关于这些内容我们将在《QQ群发软件开发二》中与人家分享。
- QQ群发软件开发一
- QQ群发软件开发二
- qq群发信息软件
- 解密淘宝天猫内部优惠券微信群发软件和QQ群发软件(一)
- VC开发的一个QQ邮件群发软件
- qq群成员群发软件
- QQ群自动群发软件
- 豪迪QQ群发营销软件
- 群发软件开发过程
- 用速达营销QQ群发软件创造业绩
- 一战QQ群发器-免费的群发神器
- 2016QQ营销软件速达QQ群发器
- QQ即时通讯消息群发例子,QQ机器人开发学习资料
- 论坛邮件搜索群发软件_猫神qq邮件群发软件_美的电子邮件系统
- 开发旺旺群发软件,难点及重要技术点分析(一)
- 关于短信群发软件的开发
- 关于短信群发软件的开发
- 移动 短信群发软件开发完成。
- VC Dimension
- Spring 依赖注入 之 设值注入 的小问题
- 开源ECSHOP中SQL DELETE\INSERT\UPDATE操作集锦,练习SQL
- 十进制转十六进制
- python Django 数据库查询
- QQ群发软件开发一
- 十六进制转八进制
- Java集合框架小总结
- centos6.6下安装MySQLdb时出现“error: command 'gcc' failed with exit status 1”
- hdu 2444 The Accomodation of Students (二分图匹配+染色法)
- 利用.dSYM和.app文件准确定位Crash位置
- 黑马程序员------C语言-----流程控制(选择结构:if,switch)
- python lib install
- C语言--行指针与列指针