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

怀孕的老男孩

怀孕的老男孩

2016-01-29 14:10

QQ聊天记录器演示程序(一),QQ聊天记录器演示程序(一)
 
注:本篇没有高手需要的内容,因为此文中的技术实在无新意可言,只是些简单的实现(可针对QQ2003和QQ2004版本),各位高手可以就此打住,若浪费宝贵时间,吾将深感不安。   作者网站:http://asp.itdrp.com/hottey

     嘘!好不容易有了一点轻松点的时候.现在才有时间把前几天做的QQ聊天记录器发上来和大家一起分享.做这个程序是看到最近网上有一个叫QQAutoReorder的软件.它所实现的功能就是对QQ聊天记录进行记录.所采用的技术是:对QQ对话框进行挂钩.它并不能对用户没有点击的QQ消息进行记录.(我认为若想对QQ消息进行实时记录,意思就是不等QQ消息框出来就记录下QQ的消息.可能只能去拦截QQ的数据封包了吧.我也花了一天时间在这上面,但最后的结论是’太自不量力了’^_^看来QQ的数据封包可不是那么容易就能得到的L)

   言归正传:本文采用对QQ消息框进行挂钩了方法(一来比较容易实现,二来也是大多数此类程序通用的方法.)为了简化程序:我将此程序分为两部实现(均于QQ2004下实现,到最后在兼容QQ2003的版本):

  一.   捕获别人给自己发来的消息:

  既然是挂钩QQ的消息框,自然得从众多的钩子类型中找出一种最为合理,也最方便的.很容易想到的是无论你用什么方式查看QQ的消息.总会导致一个QQ消息窗体的生成.就是会产生一个CREATE事件.从这一点上看,用一个WH_SHELL钩子是比较明智的.

  帮助上对WH_SHELL的说明是:监控Windows外壳通知消息,例如顶级窗口的创建的释放.我们这里要关心是窗口的创建消息.

  由于有可能一次出现多个QQ消息窗口的情况,我在这里使用全局钩子:并定义以下数据结构:


HookType.Pas单元

unit HookType;

interface

uses

  Windows, Messages;
const

  WM_USERCMD   = WM_APP + 1;  //用户自定应用程序级消息

  UC_WINCREATE  = WM_APP + 2;   //QQ消息窗口创建

  UC_WINDESTROY = WM_APP + 3;  //发送QQ消息

  BUFFER_SIZE  = 16 * 1024;

  HOOK_MEM_FILENAME = 'MEM_FILE';

type

  TShared = record

 

 

[next]





   KeyHook : HHook;   //键盘钩子

    ShellHook: HHook;

    CallHook : HHook;

    MainWnd : THandle;  //窗体的Handle(非Application.Handle)

    Moudle  : THandle;  //DLL

  end;

  PShared = ^TShared;

implementation

end.

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

DLL单元代码


var

  MemFile: THandle;

  Shared: PShared;

function ShellProc(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;

begin

  case iCode of

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

    HSHELL_WINDOWCREATED:

//有顶级窗口创建时向演示程序发送自己定义消息WM_USERCMD. Wparamr参数说明

// wParam specifies the handle of the window being created or destroyed, respectively.

      PostMessage(Shared^.MainWnd,WM_USERCMD ,UC_WINCREATE,wParam);

  end;

  Result := CallNextHookEx(Shared^.ShellHook,iCode,wParam,lParam);

end;

function InstallHook:Boolean;

 

 

[next]


begin

  Shared^.Moudle:=GetModuleHandle(PChar('qqhook')); //qqhook是我的DLL文件名.

  Shared^.ShellHook := SetWindowsHookEx(WH_SHELL,

                                    

展开更多 50%)
分享

猜你喜欢

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

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

QQ聊天记录器演示程序

编程语言 网络编程
QQ聊天记录器演示程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

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

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

怎么删除QQ聊天记录 QQ聊天记录删除方法

计算机应用技术
怎么删除QQ聊天记录 QQ聊天记录删除方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

怎样恢复QQ聊天记录 怎么备份QQ聊天记录

计算机应用技术
怎样恢复QQ聊天记录 怎么备份QQ聊天记录

QQ聊天记录怎么加密 怎么锁手机qq聊天记录

qq qq密保设置
QQ聊天记录怎么加密 怎么锁手机qq聊天记录

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《剑魂之刃》攻略刻印符有什么用?

《剑魂之刃》攻略刻印符有什么用?

回调函数与Delphi的事件模型

回调函数与Delphi的事件模型
下拉加载更多内容 ↓