文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发DelphiDelphi中利用钩子实现QQ聊天窗口的修改
精品推荐
特别推荐
·利用Delphi编写Socket通信程序
·拦截其它程序的网络数据封包
·Delphi编程根据IP地址得到主机名
·Delphi 程序员代码编写标准指南
·用DELPHI开发自动化服务器
·将日期转化为汉语的形式
·加密ACCESS数据库增加安全性
·使用TCP/IP协议实现聊天程序
·在Delphi中控制扫描仪
热点TOP10
·利用Delphi 5.0开发OLE自动化控制器操纵Excel
·在Delphi中控制扫描仪
·Delphi中DLL的创建和使用(1)
·Delphi接口编程的两大陷阱
·利用Tbatch组件完成数据批处理
·如何Delphi中操纵拨号网络
·实现webbrowser中的打印、复制、全选等编辑功能
·小技巧:如何用Delphi创建快捷方式
·Delphi开发工具中如何访问数据库结构
·Delphi版模仿熊猫烧香病毒核心源码

Delphi中利用钩子实现QQ聊天窗口的修改

日期:2008年5月28日 作者: 查看:[大字体 中字体 小字体]



  有人曾为公司不让用QQ、MSN等聊天工具而烦恼吗?看了下面的小程序你就会打消这种看法了。

  当初公司做校园一卡通的项目时,里面的机房客户端需要用到系统的低级键盘钩子WH_KEYBOARD_LL,这也是我第一次接触到Windows中的Hook,因为WH_KEYBOARD_LL和其他钩子不一样,在Delphi的Windows帮助以及windows.pas文件中都没有定义,但microsoft的msdn中确有WH_KEYBOARD_LL的介绍,所以一路解决后就对Windows的系统钩子产生了兴趣。之后相继做过鼠标钩子WH_MOUSE、低级鼠标钩子WH_MOUSE_LL以及消息钩子WH_GETMESSAGE的小例子,都很有意思。

  这次我用到的是另外一个系统钩子:WH_CBT。

  看了delphi中的帮助,发现CBTProc中有很多功能:

HCBT_ACTIVATE
HCBT_CREATEWND
HCBT_DESTROYWND
HCBT_MINMAX
HCBT_MOVESIZE
HCBT_SETFOCUS
HCBT_SYSCOMMAND
  (具体就不介绍了,看看帮助里写的很清楚)

  随后便开始试验起来,最终完成了这个小程序。下面我简单介绍一下:

  运行程序后自动隐藏,当你提取QQ或者MSN的消息时会惊奇的发现聊天窗口的那个讨厌的“与XX聊天”的标题没有了,而标题换成了“我的文档”。这时如果你再将此聊天窗口的图标换成文档样式的图标,那么谁还能看出那就是你的聊天窗口呢?(更换图标的方法也很多,可以用程序,也可以用软件直接修改QQ的资源文件,这部分我没有做,这里只是提供大家一个思路,有兴趣的朋友可以自己尝试一下,呵呵)。

  下面将代码帖出:

library HookPrj;

uses
 SysUtils,
 Classes,
 QQTitleHook in ’QQTitleHook.pas’;

 exports
EnableWheelHook, DisableWheelHook;

begin
 hkQQChat:= 0;
end.
==========================================================
unit QQTitleHook;

interface

uses
 Windows, Messages, SysUtils, Dialogs, CommCtrl, StrUtils;

var
 hkQQChat: HHOOK;
 //聊天窗口的句柄
 hwQQChat: HWnd ;
 //聊天窗口的标题
 tlQQChat: string;
 //窗口类名
 clsName: string;
 buf: array [0..1024] of char;

 const
  //QQ聊天窗口的类名
  csQQ = ’#32770’;

 function TitleHookProc(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
 function EnumWindowsTitleFunc(Handle: THandle; lParam: LPARAM): boolean ; stdcall;
 function EnableWheelHook : Boolean; stdcall; export;
 function DisableWheelHook: Boolean; stdcall; export;

 implementation
 
 //钩子的处理函数
 function TitleHookProc(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
 begin
  Result:= 0;
  if Code<0 then
  begin
   Result:= CallNextHookEx(hkQQChat, Code, wParam, lParam);
   Exit;
  end
  else
   if Code = HCBT_ACTIVATE then
   begin
    //获取激活窗口的句柄,以及窗口类名,然后判断此窗口类名是否为#32770。
    hwQQChat:= HWND(wParam);
    GetClassName(hwQQChat, buf, 1024);
    clsName:= string(buf);
    if clsName = csQQ then
    begin
     //如果窗口类名是#32770,则遍枚举所有窗口,并将窗口句柄传入
     //【这里仅仅做演示用,因为Windows中很多窗口的类名均为#32770,所以这样判断效率会很底,】
     //【有兴趣的朋友可以根据QQ聊天窗口的特性来增加判断条件,从而提高效率。】
     EnumWindows(@EnumWindowsTitleFunc, hwQQChat);
    end;
   end;
  end;

 function EnumWindowsTitleFunc(Handle: THandle; lParam: LPARAM): boolean ; stdcall;

[1] [2] 下一页 




上一篇:Delphi下“培养”自己的简单木马

下一篇:Delphi6函数大全(3)

相关文章:
·photoshop修改照片成为美女教程
·《侠盗猎车手-罪恶都市》修改 - 游戏秘籍
·自己动手修改QQ等级
·只需十三招 轻松学会利用博客赚钱
·QQ聊天记录偷窥和QQ视频欺骗
·如何实现局域网打印机共享
·QQ空白头像修改器:让QQ头像消失
·离线查看QQ聊天记录有新招
·注册表修改大全之XP
·免费攻略:利用QQ网吧免费开蓝钻
相关软件:
·三国志10威力加强PK版中文版 内存+存档+剧本修改器v1.10
·死亡之屋3 内存修改器
·仙剑奇侠传3中文版 修改器百宝豪华版
·暗黑破坏神 2 1.10超级修改器暗黑通v1.01繁体版
·轩辕剑四外传苍之涛中文版 超级属性修改器
·《真三国无双3》属性修改器V1.08c
·侠盗猎车 圣安地列斯 27项属性修改器
·轩辕剑3外传天之痕修改器之三(修改项目全面)
·查看QQ聊天记录V3.0 Build 20071108
·轩辕剑3外传天之痕V2.03版修改器

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot