?? 利用鍵盤鉤子在windows平臺下捕獲鍵盤動作.txt
字號:
作者:skyhorsebj
email: XUEY@CIDC.COM.CN
日期:2001-7-3 18:10:43
一。我們可以在應用程序中毫不費力的捕獲在本程序窗口上所進行的鍵盤操作,但如果我們想要將此程序作成一個監控程序,捕獲在Windows平臺下任意窗口上的鍵盤操作,就需要借助于全局鉤子來實現了。
二、系統鉤子和DLL
鉤子的本質是一段用以處理系統消息的程序,通過系統調用,將其掛入系統。鉤子的種類有很多,每種鉤子可以截獲并處理相應的消息,每當特定的消息發出,在到達目的窗口之前,鉤子程序先行截獲該消息、得到對此消息的控制權。此時在鉤子函數中就可以對截獲的消息進行加工處理,甚至可以強制結束消息的傳遞。
在本程序中我們需要捕獲在任意窗口上的鍵盤輸入,這就需要采用全局鉤子以便攔截整個系統的消息,而全局鉤子函數必須以DLL(動態連接庫)為載體進行封裝,VC6中有三種形式的MFC DLL可供選擇,即Regular statically linked to MFC DLL(標準靜態鏈接MFC DLL)、Regular using the shared MFC DLL(標準動態鏈接MFC DLL)以及Extension MFC DLL(擴展MFC DLL)。 在本程序中為方便起見采用了標準靜態連接MFC DLL。
三、鍵盤鉤子程序示例
本示例程序用到全局鉤子函數,程序分兩部分:可執行程序KeyHook和動態連接庫LaunchDLL。
1、首先編制MFC擴展動態連接庫LaunchDLL.dll:
(1)選擇MFC AppWizard(DLL)創建項目LaunchDLL;在接下來的選項中選擇Regular statically linked to MFC DLL(標準靜態鏈接MFC DLL)。
(2)在LaunchDLL.h中添加宏定義和待導出函數的聲明:
#define DllExport __declspec(dllexport)
……
DllExport void WINAPI InstallLaunchEv();
……
class CLaunchDLLApp : public CWinApp
{
public:
CLaunchDLLApp();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -