首页
社区
课程
招聘
[旧帖] [求助]QQ尾巴病毒核心技术的实现 0.00雪花
发表于: 2008-4-9 20:58 4333

[旧帖] [求助]QQ尾巴病毒核心技术的实现 0.00雪花

2008-4-9 20:58
4333
我用FindWindowEx查找QQ窗口的句柄,当我往下找的时候发现他的几个子控件类名相同,我怎样跳过他,找最后那个类名相同的控件的句柄
hWnd=FindWindowEx(pMainWnd->m_hWnd,NULL,"#32770",NULL);
                        pMainWnd = CWnd::FromHandle(hWnd);

                        hWnd=FindWindowEx(pMainWnd->m_hWnd,NULL,"AfxWnd42",NULL);
                        pMainWnd = CWnd::FromHandle(hWnd);                       
当我用SPY++查看的时候 发现#32770
下面是AFXWIN42 但是并列的有3个,我要最后一个AFXWIN42的句柄
但是FINDWINDOWEX找到第一个就不找了 该怎么跳到最后一个AFXWIN42的句柄

往下面找那个RICHEDIT20A的句柄

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 107
活跃值: (1628)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
看雪编程高手 帮帮忙啊  这点技术也不外传 看来解密界要断层了哦(引用的一个高手说的话)。
2008-4-9 21:16
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
3
好好看看MSDN中关于FindWindowEx函数的说明:

HWND FindWindowEx(
  HWND hwndParent,      // handle to parent window
  HWND hwndChildAfter,  // handle to child window
  LPCTSTR lpszClass,    // class name
  LPCTSTR lpszWindow    // window name
);

hwndChildAfter
[in] Handle to a child window. The search begins with the next child window in the Z order. The child window must be a direct child window of hwndParent, not just a descendant window.
If hwndChildAfter is NULL, the search begins with the first child window of hwndParent.

Note that if both hwndParent and hwndChildAfter are NULL, the function searches all top-level and message-only windows.

因此,当同一个父窗口下有多个同类名的子窗口时,第一次:
hWnd=FindWindowEx(pMainWnd->m_hWnd,NULL,"AfxWnd42",NULL);
之后便:
hWnd=FindWindowEx(pMainWnd->m_hWnd,hWnd,"AfxWnd42",NULL);
就可以找下一个子窗口了。
2008-4-10 00:41
0
雪    币: 107
活跃值: (1628)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
还是找不到
2008-4-10 07:20
0
雪    币: 107
活跃值: (1628)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
The search begins with the next child window in the Z order
Z序是什么意思?
2008-4-10 07:25
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
FindWindowEx

VB声明
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
说明
在窗口列表中寻找与指定条件相符的第一个子窗口
返回值
Long,找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
参数表
参数 类型及说明
hWnd1 Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
hWnd2 Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
lpsz1 String,欲搜索的类名。零表示忽略
lpsz2 String,欲搜索的类名。零表示忽略
2008-4-10 09:22
0
雪    币: 107
活跃值: (1628)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
3Q 解决了 pMainWnd = CWnd::FromHandle(hWnd); 在找之前不能用
2008-4-10 12:31
0
雪    币: 190
活跃值: (20)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
8
不会吧...
2008-4-10 13:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习,
看帖,学习
2008-4-11 18:34
0
游客
登录 | 注册 方可回帖
返回
//