大家好,我是小勇紫夜,由于在网吧, 桌面就免了吧, 还请请谅,
今天给大家做的是VB做QQ消息连发器,
代码我事先打好了,
我就把一些重点给大家说说,
主要操作为句柄
好,就是这样了,
先运行一下看能不能行,
好,我现在来讲一下吧,
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private 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
Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
这几个是声明API
什么作用我就不多说了,自己去查,
QQHwnd = FindWindow("#32770", List1.Text)
QQHwnd = FindWindowEx(QQHwnd, 0, "#32770", vbNullString)
QQTextHwnd = FindWindowEx(QQHwnd, 0, "AfxWnd42", vbNullString)
QQTextHwnd = FindWindowEx(QQHwnd, QQTextHwnd, "AfxWnd42", vbNullString)
这里就是关键了,,
看好,#32770 是QQ的句柄
#32770
下面的就是找文本框的句柄了,
RichEdit20A
QQTextHwnd = FindWindowEx(QQTextHwnd, 0, "RichEdit20A", vbNullString)
可能有的人会问这里为什么有两行
QQTextHwnd = FindWindowEx(QQHwnd, 0, "AfxWnd42", vbNullString) 这是第一层
QQTextHwnd = FindWindowEx(QQHwnd, QQTextHwnd, "AfxWnd42", vbNullString) 这是第二层
是因为
先演示一下,
看到没,, 这个的窗口类名也是,AfxWnd42 可这不是我们所要的
在窗口列表中寻找与指定条件相符的第一个子窗口 AfxWnd42
我们所要的是第二个子窗体的,AfxWnd42 RichEdit20A 0x000105C4 (67012)
看到没, 就是这里了,, 我们用两层就是利用第二个子窗口
试试
好了,今天的教程就是这样, 有什么不懂的可以问我,
BY:小勇紫夜 QQ;343032105 http://yxp888.uu1001.com/index.php