一、QQ窗口分析
近来QQ尾巴病毒,在网络上很是流行,我也常常收到网友们发到来的带尾巴的消息。国庆节闲来无事,就拿此病毒来消遣一下——写一个类似的自动发送QQ消息的小程序。
先让我们分析一下QQ尾巴的发作情况:当用户打开一个QQ消息发送窗口时,病毒会自动往消息文本框里输入文本,然后不等用户反应过来就发出去了。如果要实现这些功能必须获得QQ窗口“发送”按钮的句柄和文本框的句柄。
在进行程序编写之前需要使用Spy++ 软件对QQ窗口进行分析,以了解QQ窗口各个子窗口之间的关系。SSpy++ (SPYXX.EXE) 是一个基于 Win32(最新版本支持Win64) 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用 Spy++ 可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树。 搜索指定的窗口、线程、进程或消息。 查看选定的窗口、线程、进程或消息的属性。 直接从视图中选择窗口、线程、进程或消息。 通过鼠标定位,使用查找程序工具选择窗口。 使用复杂的消息日志选择参数设置消息选项。 提示使用 Spy++ 时,在许多实例中都可以单击鼠标右键显示常用命令的弹出式菜单。命令是否可用取决于指针的位置。例如,如果在指向窗口视图中的某项时单击并且选定的窗口可见,则弹出式“突出显示”菜单项将导致选定窗口的边框闪烁,从而可以轻松地在屏幕上找到该窗口。
启动Spy++,并打开一个QQ窗口。在Spy++的“监视”菜单中选择“查找窗口”(如图1),就弹出如图2的窗口,然后选择“查找程序工具”,拖拉到QQ窗口的输入文本框上,
单击确定,就弹出如图3的窗口。
在图3这个窗口中,我们可以对当前窗口的类别、父窗口和子窗口的继承关系等有关该窗口的信息。经分析,输入文本框是QQ窗口的第4个子窗口的第23个子窗口的第1个子窗口,这对我们程序的编写十分重要。采用同样的步骤,对“发送”按钮进行分析,得到:“发送”是QQ窗口的一个子窗口。在本文中为了示范作用,我们采用多种不同的方式获得子窗口。本程序是在VC++2003开发环境下编写的,可以正常运行。
二、QQ窗口句柄的获取
QQ窗口有两种,一种是消息模式,在这种情况下,窗口标题含有“发送消息”字样;一种是聊天模式,窗口标题含有“聊天中”字样。这些文字将成为我们寻找QQ窗口的线索。下面是获得QQ窗口的代码:
CWnd *hCurrentWindow;
CWnd *QQWnd;
CString WndText;
CString SendText;
hCurrentWindow=(CDialog* )GetWindow(GW_HWNDFIRST);
while(hCurrentWindow!=NULL)
{
hCurrentWindow->GetWindowText(WndText);
if((WndText.Find("聊天中")!=-1)||(WndText.Find("发送消息")!=-1))
{
QQWnd=hCurrentWindow;
break;
}
else
hCurrentWindow=hCurrentWindow->GetWindow(GW_HWNDNEXT);
}
在对代码进行解释之间,先对GetWin

本文介绍了一种利用Spy++分析QQ窗口,通过编程自动发送QQ消息的方法。文章详细阐述了获取QQ窗口句柄、设置文本框文本及自动发送消息的过程。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



