哈尔滨汽车网

当前的位置是:主页 >> 资讯

利用VisualC实现QQ消息群发

日期:2020-06-13 来源:哈尔滨汽车网

一、引言

一直是国内最令人瞩目的及时通讯App,近6年的经营使其在IM市场有了"世界第一"名号。在国内市场,的市场占有率已经超过了70%,用户群庞大,本人就是Tencent的一个用户。不知会员是否能够消息群发,但我这个免费用户是享受不了这个服务的,给同事和朋友们发通知好辛苦啊。在上谷歌了一下,找到几个小App,可是消息后面又加个广告尾巴。还是自己动手吧:

如果要分析Tencent协议来编写发送消息是很复杂的一件事情,那么,有没有简单的办法呢?答案是肯定的:有!

既然Windows使用消息循环来处理输入信息,那么如果大家能够用程序模拟产生"操作时鼠标和键盘操作所发出的消息" ,那么就应该可以实现程序发送消息,进而批量发送消息,即消息群发。

二、具体实现

给某个人发送消息时,将创建如下图所示的窗口(对话框窗口),大家发消息就是填写消息内容,然后点击发送。要模拟消息发送,大家就需要填写消息内容,然后模拟按键发送。

第一步,找到聊天主窗口,该窗口的标题是与*****聊天中,大家可以通过使用FindWindowEx函数来找到这个窗口。

第二步,找到输入消息的控件并在里面填写消息。注意:可能是Tencent企业为了安全,在窗口里又套了几个窗口,如果有兴趣,可以用MicroSoft的工具SPY++自己看看。通过使用SPY++观察,发现该控件是一个RichEdit类,位置如上图所示,大家还是用 FindWindowEx函数来找到它,然后取得指针,通过指针往里面些数据。

第三步,模拟鼠标点发送按钮的操作,可以通过取得该按钮的指针,然后发送一个BM_CLICK消息就可以了。

通过程序模拟,实现的非常好。用VC6建立一个简单的对话框程序,添加一个按钮(改Caption值为发送)稿源:环球,为该按钮填加以下实行代码:

void CMySMSDlg:: SendMessage()

{

CString str;

CWnd* pMainWnd = AfxGetMainWnd()-GetWindow(GW_HWNDFIRST);

while (pMainWnd)

{

HWND hWnd,hNext;

hWnd = pMainWnd-m_hWnd;

pMainWnd-GetWindowText(str);

if(nd ("聊天")-1){//找到聊天主窗口Begin

//找RichEdit

hWnd=FindWindowEx(pMainWnd-m_hWnd,NULL,"#32770",NULL);

pMainWnd = CWnd::FromHandle(hWnd);

hWnd=FindWindowEx(pMainWnd-m_hWnd,NULL,"AfxWnd42",NULL);

CWnd* pChildWnd=CWnd::FromHandle(hWnd);

int nLen = tLength ();

hNext = FindWindowEx(pChildWnd-m_hWnd,NULL自己的特长是什么就可以了,"RICHEDIT",NULL);

if(hNext){//找到消息填写控件

CRichEditCtrl* pRich=(CRichEditCtrl*)(CWnd::FromHandle(hNext));

pRich-GetWindowText (str);

pRich-SetSel (nLen,nLen);

pRich-ReplaceSel ("成都外国语学校 黄东");//填上将要发送的内容

}else return;

//找消息发送按钮

hWnd=FindWindowEx(pMainWnd-m_hWnd,NULL,NULL,NULL);

while (hWnd) {

pChildWnd=CWnd::FromHandle(hWnd);

pChildWnd-GetWindowText(str);

if(nd ("发送")-1){

pChildWnd-SendMessage (BM_CLICK);//发送

return;// 退出

}

hWnd=FindWindowEx(pMainWnd-m_hWnd,hWnd,NULL,NULL);

}

return;

}//找到聊天主窗口End

else pMainWnd = pMainWnd-GetWindow(GW_HWNDNEXT); //继续找

}//While

}

至此,主要部件已经实现了,如何让程序自动为每个好友打开聊天窗口,和这个也差不了太多,就留给各位去研究吧,这条思路适合目前所有的IMApp。

程序在VC6下编译通过(文件很小,只有20KB),操作系统为Windows 2000 SP4,版本为2004 SP1,按发送按钮之前需要打开一个聊天窗口。

查看本文来源

吃什么能舒筋活络
颈动脉硬化
海口白癜风治疗费用
相关阅读
XML 地图 | Sitemap 地图