利用Hook技术实现键盘监控

本文介绍了如何在Delphi环境下,通过创建DLL并利用Hook技术实现键盘监控。通过在DLL中设置Hook,可以实时监控键盘输入,并将数据记录到文件。同时,程序能够作为系统托盘图标运行,提供更专业的监控体验。
摘要由CSDN通过智能技术生成
在许多系统中,出于安全或其它原因,常常要求随时对键盘进行监控,一个专业的监控程序必须具备两点,一是实时;二是作为指示图标运行。实际应用中把利用Hook(即钩子)技术编写的应用程序添加到Windows的任务栏的指示区中就能够很好的达到这个目的。我在参考了API帮助文档基础上,根据在Delphi开发环境中的具体实现分别对这两部分进行详细论述。
  一、Hook(钩子)的实现:
  Hook是应用程序在Microsoft Windows 消息处理过程中设置的用来监控消息流并且处理系统中尚未到达目的窗口的某一类型消息过程的机制。如果Hook过程在应用程序中实现,若应用程序不是当前窗口时,该Hook就不起作用;如果Hook在DLL中实现,程序在运行中动态调用它,它能实时对系统进行监控。根据需要,我们采用的是在DLL中实现Hook的方式。
  1.新建一个导出两个函数的DLL文件,在hookproc.pas中定义了钩子具体实现过程。代码如下:
  library keyspy;
  uses windows, messages, hookproc in ’hookproc.pas’;
  exports setkeyhook,endkeyhook;
  begin
  nexthookproc:=0;
  procsaveexit:=exitproc;
  exitproc:=@keyhookexit;
  end.

  2.在Hookproc.pas中实现了钩子具体过程:

  unit hookproc;
  interface uses Windows, Messages, SysUtils, Controls, StdCtrls;
  var nexthookproc:hhook;
  procsaveexit:pointe
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值