zoukankan      html  css  js  c++  java
  • Delphi中的钩子函数HOOK详解

    Delphi中的钩子函数--HOOK,即系统挂钩捕捉键盘操作实例

       在WINDOWS系统下,应用程序常常要截获其他程序的消息,并加以处理(例如跟踪键盘或鼠标的按键状况等)。
       现在,我们假设在前台进行正常操作,在后台利用HOOK程序为系统安装一个键盘挂钩,当有按键操作时,
    系统发给键盘挂钩对应的消息,而这些消息被HOOK程序截获,并加以相应的处理,这样就可以监视键盘的使用状况了。
    一.实现方法
       DELPHI提供了强大的可视化集成开发环境,它使得在Windows下的应用程序开发变得更加广泛,因此我们将用DELPHI编写一个动态链接库,然后在主程序中加以调用以实现系统挂钩的设置。具体步骤如下:
       ① 用DELPHI创建一个使用键盘挂钩的动态链接库HK.DLL
       ② 用DELPHI编写一个使用上述DLL的可执行文件HOOK.EXE
    二.实现步骤
    1.创建动态链接库
    * 选择FILE菜单中的NEW选项,选择DLL产生一个新的模板,保存为HK.DPR

    //* 将程序编译后生成一个名为HK.DLL的动态链接库文件并存入“c:/”目录下。

    2 .创建调用DLL的EXE程序HOOK.EXE
    //* 选择FILE菜单中的NEW选项,在New Items窗口中,选择Application选项。在窗体Form中,加入两个按键,
    //一个定义为挂钩,另一个定义为解脱,同时加入一个文本框以提示挂钩的设置状况。将Unit1存为“hk.pas”,其相应的代码如下:

    //* 选取Views菜单中的Project Source,将Project1存为“hook.dpr”,其代码如下:

    //* 编译生成HOOK.EXE 程序并存入“c:/”目录下。预先用“记事本”在“c:/”目录下建立CODE.TXT文件,
    //运行HOOK程序并单击“挂钩”键,文本框提示“设置系统挂钩”,这时启动写字板等应用程序,所键入的字
    //母和数字将被记录在CODE.TXT文件中。
    //单击“解脱”键,文本框显示“挂钩解脱”,程序将停止对键盘的捕获。

    源代码文件下载

  • 相关阅读:
    BestCoder17 1001.Chessboard(hdu 5100) 解题报告
    codeforces 485A.Factory 解题报告
    codeforces 485B Valuable Resources 解题报告
    BestCoder16 1002.Revenge of LIS II(hdu 5087) 解题报告
    codeforces 374A Inna and Pink Pony 解题报告
    codeforces 483B Friends and Presents 解题报告
    BestCoder15 1002.Instruction(hdu 5083) 解题报告
    codeforces 483C.Diverse Permutation 解题报告
    codeforces 483A. Counterexample 解题报告
    NSArray中地内存管理 理解
  • 原文地址:https://www.cnblogs.com/xieyunc/p/9126738.html
Copyright © 2011-2022 走看看