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