大家帮我看看这个钩子哪里有错误呀 ( 积分: 100 )

  • 主题发起人 主题发起人 jiangzhang3942
  • 开始时间 开始时间
公司是用代理上网的,QQ什么的早就封了。痛苦啊[:(]
 
楼主 你这样是不行的,
窗口关闭之前已经把控件全部销毁了,你取不到对话框的句柄了
我可以提供一个思路:在鼠标左键点击“关闭”按纽和右上方关闭的时候取对话框句柄然后获取对话框的内容。
 
为什么针对QQ的需求那么多呢?
---------------------------------------------------------------------------------------http://www.waibaoinfo.com 外包信息网 - IT界专业的外包项目信息发布和承接平台
 
To:暗夜中独舞
老大,我怎么截获关闭按钮的事件呀
 
做个鼠标钩子,捕获鼠标单击事件,获取鼠标位置,取得鼠标所在控件的句柄,判断!

我以前曾经做过一个,我晚上回去给你吧。你留个地址还是我直接复制上来?
 
jiangzhang3942@163.com
 
To :暗夜中独舞 老大
function HookHandler(Code : Integer;wParam : WPARAM;lParam : LPARAM): LRESULT; stdcall;
var
Msg : PMSG;
MyHandle,H : Thandle;
szText : array[0..256] of char;
S : string;
Ret : integer;
RichEditTest : array[0..100000] of char;
begin
if code=HC_ACTION then
begin
Msg := PMSG(lParam);
case Msg.message of
WM_CLOSE:
begin
MyHandle := GetForegroundWindow;
GetWindowText(MyHandle,@szText,255);
S := string(szText);
MessageBox(0,pchar(s),'',MB_OK);
if (Pos('与',S) > 0) and (Pos('聊天中',S) > 0) then
begin
H:=GetDlgItem(MyHandle,0);
messagebox(0,pchar(inttostr(h)),'',MB_OK);
H := GetDlgItem(H,$380);//聊天窗口的句柄
messagebox(0,pchar(inttostr(h)),'',MB_OK);
Ret := SendMessage(h, WM_GETTEXTLENGTH, 0, 0) + 1;
messagebox(0,pchar(inttostr(Ret)),'',MB_OK);
SendMessage(h,WM_GETTEXT,100000,Integer(@RichEditTest));

Messagebox(0,pchar(string(RichEditTest)),'',MB_OK);//这里为什么什么也没有

end;
end;
end;
end;
Result := CallNextHookEx(HookHandle, Code, wParam, lParam);
end;
截获窗体的关闭事件也不行
jiangzhang3942@163.com发给我好吗
 
to 楼主:邮件已发送 请注意查收。

截获窗体的关闭事件肯定不行,已经在窗体向系统提交关闭事件之前已经把控件全部销毁了,所以这时候你就取不到控件,更不用说获取文本了!
 
谢谢,接分老大
 

Similar threads

后退
顶部