QQ聊天记录器演示程序(二)

2016-01-29 14:11 4 1 收藏

QQ聊天记录器演示程序(二),QQ聊天记录器演示程序(二)

【 tulaoshi.com - Delphi 】

 
基于上篇《QQ聊天记录器演示程序(一)》,此文将讲述如何捕获自己发送出去的消息:

  // hottey   于2004-6-2号

  QQ从本机发出消息无非就是两种方式.(1)按发送按钮,(2)按Ctrl+Enter组合键.当然自定义键除外.也不在本文考虑范围之内:

  基于这两种发送的方式我选用:WH_CALLWNDPROC 和 WH_KEYBOARD两种钩子.Sorry,今天心情太烂(学校里的一些琐事,郁闷).实在无心继续.只能贴上源码了.大家有兴趣自己看看...有什么问题可以和我联系.delphi21@163.com


  //监控Ctrl+Enter组合键
function  KeyboardProc(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
    if (wParam = VK_RETURN) and (GetKeyState(VK_CONTROL) < 0) and (lParam = 0) then
      begin
        SendMessage(Shared^.MainWnd,WM_USERCMD, UC_WINDESTROY, GetForegroundWindow);
      end;
      Result := CallNextHookEx(Shared^.KeyHook,iCode,wParam,lParam);
end;

//监控"发送"按钮
function CallWndProc(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
type
  Msg = ^CWPSTRUCT;
var
  p : Msg;
begin
  p := Msg(lParam);
//只对前台窗口进行处理
  if (p^.message = WM_COMMAND) and (LOWORD(p^.wParam) = 1) then
    begin
      SendMessage(Shared^.MainWnd,WM_USERCMD, UC_WINDESTROY, GetForegroundWindow);
    end;
  Result := CallNextHookEx(Shared^.CallHook,iCode,wParam,lParam);
end;


演示程序相关代码:

procedure TForm1.WndProc(var Msg: TMessage);
begin
 with Msg do
 begin
   if Msg = WM_USERCMD then
   begin
     case wParam of
       UC_WINDESTROY:
       begin
         GetText(Findhwd(HWND(lParam)));
       end;
     end;
   end;
 end;
 inherited;
end;



[next]


function TForm1.Findhwd(parent: HWND):HWND;
var
  hwd,hBtn,hMemo:HWND;
begin
    hwd:=findwindowex(parent,0,'#32770',nil);

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/delphi/)

    Result := 0;
    if (parent<0) then
    begin
      hBtn := FindwindowEX(hwd,0,nil,'发送(&S)');
      if (hBtn<0) then
        begin
          hMemo := GetDlgItem(hwd,$00000000);
          if (hMemo<0) then
            begin
              result := GetWindow(hMemo,GW_CHILD);
            end;
        end;
    end;
end;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/delphi/)


procedure TForm1.GetText(hwd: HWND);
var
  Ret: LongInt;
  QQText: PChar;
  Bu

来源:https://www.tulaoshi.com/n/20160129/1492704.html

延伸阅读
标签: 电脑入门
我们知道,一般情况下不登录QQ是无法查看到QQ聊天记录的;但有时可能忘记了登录密码,又急需要查看与好友的聊天记录时,又该怎么办呢?其实现在有不少小软件可以免QQ密码登录,在情急之下也不失为一种解决办法。只是注意别拿这些软件去偷窥人家的隐私哦。 一、软件速览 QQ聊天记录器能完整的记录下你电脑上的所有的QQ聊天信息,不用密码,不...
手机QQ怎么查看聊天记录   新版手机QQ 5.0自发布一来,在易用性上提高了不少,不过,如果你是刚注册QQ用户,或者说使用老版本QQ的用户,第一次使用新版手机QQ,可能找不到聊天记录,那么这里就来介绍一下。 第一步 打开手机QQ,选择你的某位好友的对话 第二步 点击页面右上角的图标 第三步 选择...
手机qq聊天记录怎么删除   1、大家在与好友聊天时,可以发现右上角的菜单键,点击进入,如图; 2、进入菜单键后可以看到下方的聊天记录,点击进入; 3、聊天记录可以下载,也可以删除,点击右下角删除标志; 4、这个时候会出现删除手机聊天记录或是漫游聊天记录,靠你选择啦!漫游聊天记录是QQ会员专享特权。 ...
手机QQ怎么导出聊天记录   1.打开手机QQ,进入某位好友的聊天界面 2.点击右上角的 3.选择 4.选择底部 5.弹出提示,点击 6.聊天记录导出成功,去上一步提示的文件夹查看即可
手机qq如何删除聊天记录?   第一步、打开手机qq,用手指向右滑动,点击设置。 第二步、在设置页面,我们点击聊天记录。 第三步、聊天记录页面中,我们点击清空所有聊天记录,即可以清空手机qq的聊天记录。 第四步、这时,系统会弹出确认窗口,你点击清空所有聊天记录即可。

经验教程

605

收藏

53
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部