一介紹
本文將討論在NET應用程序中全局系統鉤子的使用為此我開發了一個可重用的類庫並創建一個相應的示例程序
圖
你可能注意到另外的關於使用系統鉤子的文章本文與之類似但是有重要的差別這篇文章將討論在NET中使用全局系統鉤子而其它文章僅討論本地系統鉤子這些思想是類似的但是實現要求是不同的
二背景
如果你對Windows系統鉤子的概念不熟悉讓我作一下簡短的描述
◆一個系統鉤子允許你插入一個回調函數它攔截某些Windows消息(例如鼠標相聯系的消息)
◆一個本地系統鉤子是一個系統鉤子它僅在指定的消息由一個單一線程處理時被調用
◆一個全局系統鉤子是一個系統鉤子它當指定的消息被任何應用程序在整個系統上所處理時被調用
已有若干好文章來介紹系統鉤子概念在此不是為了重新收集這些介紹性的信息我只是簡單地請讀者參考下面有關系統鉤子的一些背景資料文章如果你對系統鉤子概念很熟悉那麼你能夠從本文中得到你能夠得到的任何東西
◆關於MSDN庫中的鉤子知識
◆Dino Esposito的《Cutting EdgeWindows Hooks in the NET Framework》
◆Don Kackman的《在C#中應用鉤子》
本文中我們要討論的是擴展這個信息來創建一個全局系統鉤子它能被NET類所使用我們將用C#和一個DLL和非托管C++來開發一個類庫它們一起將完成這個目標
[] [] [] [] []
From:http://tw.wingwit.com/Article/program/net/201311/15485.html