摘要: 目前对钩子的理解:譬如我们用鼠标在某个窗口上双击了一次, 或者给某个窗口输入了一个字母 A; 首先发现这些事件的不是窗口, 而是系统!然后系统告诉窗口: 喂! 你让人点了, 并且是连续点了两鼠标, 你准备怎么办? 或者是系统告诉窗口: 喂! 有人向你家里扔砖头了, 不信你看看, 那块砖头是 A. 这时窗口的对有些事件会忽略、对有些事件会做出反应:譬如, 可能对鼠标单击事件忽略, 窗口想: 你单击我不要紧, 累死你我不负责; 但一旦谁要双击我, 我会马上行动, 给你点颜色瞧瞧!这里窗口准备要采取的行动, 就是我们提前写好的事件.用 Windows 的话说, 窗口的事件就是系统发送给窗口的消息; 阅读全文
posted @ 2013-06-07 16:32 万大侠 阅读(224) 评论(0) 推荐(0)
摘要: 编辑本段钩子函数作用在某种操作后弹出的关于钩子函数的界面WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过“钩挂”,您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做“钩子函数”,当每次发生您感兴趣的事件时,WINDOWS都将调用该函数。类型一共有两种类型的钩子:局部的和远程的。局部钩子仅钩挂您自己进程的事件。远程的钩子还可以将钩挂其它进程发生的事件。远程的钩子又有两种:钩子分两种, 一种是系统级的全局钩子; 一种是线程级的钩子.全局钩子函数需要定义在 DLL 中, 线程级的钩子开始比较简单.其实钩子函数就三个 阅读全文
posted @ 2013-06-07 14:32 万大侠 阅读(172) 评论(0) 推荐(0)
摘要: Delphi 的属性太复杂了, 先换换思路, 再继续学习.程序需要的内存空间分为 heap(堆) 和 stack(栈);heap 是自由存储区, stack 是自动存储区;使用 heap 需要手动申请、手动释放, stack 是自动申请、自动释放;使用 heap 时, 如果只申请不释放, 就会发生"内存泄露";不需要申请和释放空间的元素, 譬如变量、结构(record)等, 是存与 stack(栈);反之如需要 Create 和 Free 的对象、需要 GetMem 和 FreeMem 的指针等, 则是存于 heap(堆);stack 比 heap 快一点点. 阅读全文
posted @ 2013-06-07 14:07 万大侠 阅读(161) 评论(0) 推荐(0)