一介绍
本文将讨论在NET应用程序中全局系统钩子的使用为此我开发了一个可重用的类库并创建一个相应的示例程序
图
你可能注意到另外的关于使用系统钩子的文章本文与之类似但是有重要的差别这篇文章将讨论在NET中使用全局系统钩子而其它文章仅讨论本地系统钩子这些思想是类似的但是实现要求是不同的
二背景
如果你对Windows系统钩子的概念不熟悉让我作一下简短的描述
◆一个系统钩子允许你插入一个回调函数它拦截某些Windows消息(例如鼠标相联系的消息)
◆一个本地系统钩子是一个系统钩子它仅在指定的消息由一个单一线程处理时被调用
◆一个全局系统钩子是一个系统钩子它当指定的消息被任何应用程序在整个系统上所处理时被调用
已有若干好文章来介绍系统钩子概念在此不是为了重新收集这些介绍性的信息我只是简单地请读者参考下面有关系统钩子的一些背景资料文章如果你对系统钩子概念很熟悉那么你能够从本文中得到你能够得到的任何东西
◆关于MSDN库中的钩子知识
◆Dino Esposito的《Cutting EdgeWindows Hooks in the NET Framework》
◆Don Kackman的《在C#中应用钩子》
本文中我们要讨论的是扩展这个信息来创建一个全局系统钩子它能被NET类所使用我们将用C#和一个DLL和非托管C++来开发一个类库它们一起将完成这个目标
[] [] [] [] []