KeyboardProc是鍵盤鉤子處理函式。
基本介紹
- 中文名:鍵盤鉤子處理函式
- 外文名:KeyboardProc
- 性質:自定義
- 類型:處理函式
基本信息,參數,返回值,備註,需求,相關,附贈例子,後衛大師,
基本信息
首先鍵盤鉤子處理函式的函式名是可以自定義的 ,例如:MyKeyboardProc()
函式原型:
LRESULT CALLBACK KeyboardProc( int code,
WPARAM wParam,
LPARAM lParam
);
參數
code:
根據這個數值決定怎樣處理訊息
如果 code 小於0,則 必須讓KeyboardProc()函式返回CallNextHookEx()
code可以是下列值:
HC_ACTION:wParam和lParam包含按鍵訊息
PM_NOREMOVE標誌)
wParam:
按鍵的虛擬鍵值訊息,例如:VK_F1
lParam:
32位記憶體,內容描述包括:指定擴展鍵值,掃描碼,上下文,重複次數。
0-15位:
描述:按下鍵盤次數。
16-23位
指定掃描碼. 依賴於OEM
24位
當24位為1時候:表示按鍵是擴展鍵
當24位為0時候:表示按鍵是是數字鍵盤按鍵
25-28位
保留位
29位
上下文鍵:為1時: ALT按下,其他情況為0
30位
如果是按鍵按下後傳送的訊息,30位為1,如果是按鍵抬起後30位為0;
31位
指定轉變狀態:31位為0時候,按鍵正在被按下,為1時候,按鍵正在被釋放
返回值
如果參數1:code小於0,則必須 返回CallNextHookEx(),也就是返回CallNextHookEx()的返回值
如果參數1:code大於等於0,並且鉤子處理函式沒有處理訊息,強烈建議您 返回CallNextHookEx()的返回值,否則當您安裝WH_KEYBOARD鉤子時
,鉤子將不會得到通知,並返回錯誤結果。
如果鉤子處理的訊息,您可以返回一個非0值,防止系統把訊息傳遞給鉤子鏈中的下一個鉤子,或者把訊息傳送到目標視窗。
備註
需求
頭檔案:Declared in Winuser.h, include Windows.h
導入庫:無
最小系統需求:Windows 95, Windows NT 3.1
相關
Hooks Overview, CallNextHookEx, GetMessage, PeekMessage, SetWindowsHookEx, WM_KEYUP, WM_KEYDOWN
附贈例子
//禁止所有鍵盤輸入
//DLL項目中代碼
//DLL.cpp
#include <windows.h>
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
return 1;
}
_declspec(dllexport) void SetHook()
{
SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,::GetModuleHandle(TEXT("DLL.dll")),0);
}
調用端代碼:
_declspec(dllimport) void SetHook();
SetHook();
後衛大師
23:49 2008-9-21