手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

鼠标Hook可视化的控件

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
分  类:系统
语  种:简体中文
编辑器:Delphi7
平  台:Win9x,Win2k/XP/NT,Win2003
作品源代码: 本地下载
软件或演示: -
代码大小: 179.7K
软件大小: -


Hook(钩子)并不是一项很难的技术,但对于初学者来说还是一个不小的门槛。为此,我将鼠标Hook做成了一个可视化的控件,通过简单的设置几个属性,就可以截获或跟踪其它应用程序的鼠标动作。

**********
控件介绍:
【属性】
1.Blocked: Boolean;
确定是截获还是跟踪鼠标动作,True对应截获,False对应跟踪。默认值为False
2.HookedExeName: string;
指定被Hook的应用程序名称。为空时对所有的应用程序起作用。默认值为空
3.Active: Boolean;
是否处于Hook状态,只读。
4.DllName: string;
Mouse钩子的dll名称,默认为MouseHook.dll,只读。
5.DLLLoaded: Boolean;
MouseHook.dll是否被加载,只读。

【方法】
1.function Start: Boolean;
开始Hook
2.procedure Stop;
停止Hook

【事件】
WM_LBUTTONDBLCLK, WM_LBUTTONDOWN, WM_LBUTTONUP,
WM_RBUTTONDBLCLK, WM_RBUTTONDOWN, WM_RBUTTONUP,
WM_MBUTTONDBLCLK, WM_MBUTTONDOWN, WM_MBUTTONUP,
WM_NCLBUTTONDBLCLK, WM_NCLBUTTONDOWN, WM_NCLBUTTONUP,
WM_NCRBUTTONDBLCLK, WM_NCRBUTTONDOWN, WM_NCRBUTTONUP,
WM_NCMBUTTONDBLCLK, WM_NCMBUTTONDOWN, WM_NCMBUTTONUP,
WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_NCMOUSEMOVE,
WM_MOUSEACTIVATE, WM_NCHITTEST, WM_CAPTURECHANGED
我处理了如上的鼠标事件,注意其中有几个事件我在测试时发现无法Hook,
它们为WM_MBUTTONDBLCLK,WM_NCMBUTTONDBLCLK,WM_MOUSEACTIVATE,WM_NCHITTEST,WM_CAPTURECHANGED

建议:不要将HookedExeName:=''; 和 Blocked:=True; 同时设置
**********

【使用说明】
1.首先安装“鼠标Hook控件”目录下的控件
2.必须将mousehook.dll拷贝到你开发的应用程序目录下,或系统目录下,如system32

【多说几句】
1.我提供了一个名为test.exe的demo,该例子是对notepad.exe进行Hook的,因此,使用前先启动notepad.exe,再点击界面上的“开始”,否则会提示“找不到指定的进程”!
2.你可以参考我的控件设计模式来设计自己的Hook控件,如键盘Hook。
3.本来想写一个组件包的,其中包括各种Hook控件,以及读写端口的控件,以方便初学者的使用,可是要些论文,以后再说吧。

上一篇: RecentFile (歷史記錄組件修改版) Repaird by senfore
下一篇: P2P点对点传输控件源码

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!