Delphi中通过钩子技术实现键盘监控

本文介绍了如何在Delphi中通过创建DLL和安装全局键盘钩子来实现键盘输入监控。详细步骤包括创建DLL工程,编写钩子处理过程,安装和卸载钩子,以及读取并显示监控到的键盘输入。
摘要由CSDN通过智能技术生成
钩子概述:
      钩子是Windows中消息处理机制的一个要点,通过安装各种钩子,应用程序能够设置相应的例程来监视系统里的消息传递以及在这些消息到达目标窗口应用程序之间处理它们。

钩子的分类:
    
      钩子可以分为线程钩子和全局钩子,线程专用钩子只是监视指定的线程,要监视系统中的所有线程必须使用全局钩子。对于全局钩子,钩子函数必须要包含在独立的动态链接库文件(DLL)中。本文的例子程序就是这样的监控全局键盘输入的全局钩子。

函数实现:

      首先我们要编写一个DLL文件,在这个DLL文件中使用SetWindowsHookEx来装载钩子,该函数的原型我们可以通过MSDN得到:
Function SetWindowsHookEx(idHook:Integer; lpin:TFNHookProc; hmod:HINST; dwThreadld:DWORD):HHOOK;stdcall;
参数说明:
idHook:  钩子的类型,本例是一个键盘钩子,使用的是WH_KEYBOARD
lpfn     装载的钩子处理函数
hmod    程序实例句柄
dwThreadld   线程ID
安装成功后返回钩子过程的句柄
最后使用UnhookWindowsHookEx卸载已经安装的钩子,该函数的原型如下:
function UnhookWindowsHookEx(hhk:HHOOK):BOOL;stdcall;
参数说明:
Hhk   卸载钩子的句柄
钩子的处理过程被声明为:
TFNHookProc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值