随笔分类 -  API 钩子相关函数

1 2 下一页
使用钩子函数[6] - 数据传递
摘要:上一个例子是从 DLL 中接受数据, 那怎么给 DLL 传递数据呢? 还有, 在接受数据时, 让 Timer 一直在那扫描也不是个好办法呀. 本例解决了这些问题(但不知解决了博友 "鹏" 的问题没有?). 为了方便测试, 提供一个源码下载吧: http://www.cnblogs.com/Files/del/MouseHook_2.rar 本例效果图(和上一例是一样的): DLL 文件:... 阅读全文
posted @ 2008-07-14 12:45 万一 阅读(6996) 评论(28) 推荐(0) 编辑
使用钩子函数[5] - 数据传递
摘要:前言: 博友 "鹏" 来信探讨关于钩子的问题, 核心困难是: dll 中的数据如何传递出来. 在接下来的两个例子中探讨这个问题. 本例建立一个全局的鼠标钩子, 然后把鼠标的相关信息通过一个自定义的 GetInfo 函数传递给调用钩子的程序. 为了方便测试, 提供一个源码下载吧: http://www.cnblogs.com/Files/del/MouseHook_1.rar 本例效果图:... 阅读全文
posted @ 2008-07-14 12:41 万一 阅读(5168) 评论(10) 推荐(0) 编辑
为钩子的下一步学习补课: 如何提取 32 位中的某一位
摘要:Integer 类型是 32 位的, 有 4 个字节, 现在我们需要能够提取出其 32 位中的某一位. 但 Delphi 最小的整数类型也是一个字节(8位)的: Byte(无符号)、Shortint(有符号). 要不先从提取一个字节开始: var i: Integer; b: Byte; begin i := MaxInt; {Integer 的最大值} ShowMessage(... 阅读全文
posted @ 2008-02-27 22:28 万一 阅读(5749) 评论(8) 推荐(1) 编辑
使用钩子函数[4] - 钩子链和 CallNextHookEx 的返回值
摘要:SetWindowsHookEx 函数的第一个参数表示钩子类型, 共有 14 种选择, 前面我们已经用过两种: WH_KEYBOARD、WH_MOUSE. 系统会为每一种类型的钩子建立一个表(那就是 14 个表), 譬如某个应用程序启动了键盘钩子, 我们自己的程序也启动了键盘钩子, 同样是键盘钩子就会进入同一个表. 这个表(可能不止一个, 可能还会有鼠标钩子等等)就是传说中的"钩子链". 假... 阅读全文
posted @ 2008-02-27 00:02 万一 阅读(9026) 评论(21) 推荐(0) 编辑
使用钩子函数[3] - 建立一个全局的鼠标钩子
摘要:分两步: 一、建立 DLL, 并在 DLL 实现钩子的设置、释放和钩子函数; 二、再建一个工程调用测试. 第一步: 做 DLL 先建立一个 DLL 工程, 自动初始的代码如下(去掉注释了): library Project1; uses SysUtils, Classes; {$R *.res} begin end. //把工程保存为 MyHook.dpr, 并实现如下... 阅读全文
posted @ 2008-02-26 14:37 万一 阅读(10200) 评论(56) 推荐(0) 编辑
使用钩子函数[2]
摘要:钩子函数虽然不多, 但其参数复杂, 应该从参数入手才能深入进去. UnhookWindowsHookEx 只需要 SetWindowsHookEx 返回的钩子句柄作参数, 这个简单; 先看看 SetWindowsHookEx 的声明: SetWindowsHookEx( idHook: Integer; {钩子类型} lpfn: TFNHookProc; {函数指针} hmo... 阅读全文
posted @ 2008-02-26 10:38 万一 阅读(6741) 评论(9) 推荐(0) 编辑
使用钩子函数[1]
摘要:目前对钩子的理解: 譬如我们用鼠标在某个窗口上双击了一次, 或者给某个窗口输入了一个字母 A; 首先发现这些事件的不是窗口, 而是系统! 然后系统告诉窗口: 喂! 你让人点了, 并且是连续点了两鼠标, 你准备怎么办? 或者是系统告诉窗口: 喂! 有人向你家里扔砖头了, 不信你看看, 那块砖头是 A. 这时窗口的对有些事件会忽略、对有些事件会做出反应: 譬如, 可能对鼠标单击事件忽略, ... 阅读全文
posted @ 2008-02-25 15:34 万一 阅读(23696) 评论(52) 推荐(5) 编辑
WinAPI: 钩子回调函数之 CallWndProcRetProc
摘要:CallWndProcRetProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:53 万一 阅读(3371) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 ForegroundIdleProc
摘要:ForegroundIdleProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:51 万一 阅读(2304) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 ShellProc
摘要:ShellProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:50 万一 阅读(2825) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 DebugProc
摘要:DebugProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:49 万一 阅读(1862) 评论(1) 推荐(0) 编辑
WinAPI: 钩子回调函数之 HardwareProc
摘要:HardwareProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:47 万一 阅读(1795) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 MouseProc
摘要:MouseProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:44 万一 阅读(4023) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 SysMsgFilterProc
摘要:SysMsgFilterProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:43 万一 阅读(2204) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 CBTProc
摘要:该函数在 窗口被激活、创建、销毁、最大化、最小化、移动、改变大小等动作前; 完成一条系统命令前; 从系统消息队列中移去一个鼠标或键盘消息前; 与系统消息同步前; 被调用! CBTProc( nCode: Integer; {要处理的消息类型, 见下表} wParam: WPARAM; {消息对应的参数, 见下表} lParam: LPARAM {消息对应的参数, 见下表} ): ... 阅读全文
posted @ 2008-02-25 14:42 万一 阅读(3162) 评论(1) 推荐(0) 编辑
WinAPI: 钩子回调函数之 CallWndProc
摘要:CallWndProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:41 万一 阅读(2656) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 GetMsgProc
摘要:GetMsgProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:40 万一 阅读(3022) 评论(1) 推荐(0) 编辑
WinAPI: 钩子回调函数之 KeyboardProc
摘要:KeyboardProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:39 万一 阅读(4296) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 JournalPlaybackProc
摘要:JournalPlaybackProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:39 万一 阅读(1770) 评论(0) 推荐(0) 编辑
WinAPI: 钩子回调函数之 JournalRecordProc
摘要:JournalRecordProc( nCode: Integer; {} wParam: WPARAM; {} lParam: LPARAM {} ): LRESULT; {} //待续... 阅读全文
posted @ 2008-02-25 14:38 万一 阅读(2613) 评论(1) 推荐(0) 编辑

1 2 下一页