KeyboardProc 回呼函式
Description
應用程式定義或程式庫定義的回呼函式,用於SetWindowsHookExA/SetWindowsHookExW函式。
每當應用程式呼叫GetMessage或PeekMessageA/PeekMessageW函式,且鍵盤訊息 (WM_KEYUP或WM_KEYDOWN進行處理時,系統就會呼叫此函式。
HOOKPROC類型會定義這個回呼函式的指標。 KeyboardProc 是應用程式定義或程式庫定義函數名稱的預留位置。
LRESULT CALLBACK KeyboardProc(
_In_ int code,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
參數
程式碼 [in]
類型: int
攔截程式用來判斷如何處理訊息的程式碼。
如果 程式碼 小於零,攔截程式必須將訊息傳遞至 CallNextHookEx 函式,而不需進一步處理,而且應該傳回 CallNextHookEx傳回的值。
此參數可以是下列其中一個值。
值 | 意義 |
---|---|
HC_ACTION 0 | wParam和lParam參數包含按鍵訊息的相關資訊。 |
HC_NOREMOVE 3 | wParam和lParam參數包含按鍵訊息的相關資訊,而且按鍵訊息尚未從訊息佇列中移除。 (名為 PeekMessage 函式的應用程式,指定 PM_NOREMOVE flag.) |
wParam [in]
類型: WPARAM
產生按鍵訊息之按鍵的 虛擬按鍵碼 。
lParam [in]
類型: LPARAM
重複計數、掃描程式碼、擴充索引鍵旗標、內容程式碼、先前的索引鍵狀態旗標,以及轉換狀態旗標。 如需 lParam 參數的詳細資訊,請參閱 擊鍵訊息旗標。 下表描述此值的位。
Bits | Description |
---|---|
0-15 | 重複計數。 值是按鍵重複的次數,因為使用者按住按鍵。 |
16-23 | 掃描碼。 此值取決於 OEM。 |
24 | 指出索引鍵是否為擴充索引鍵,例如函式索引鍵或數位鍵板上的索引鍵。 如果索引鍵是擴充索引鍵,則值為 1;否則為 0。 |
25-28 | 保留的。 |
29 | 內容程式碼。 如果 ALT 鍵關閉,則值為 1;否則為 0。 |
30 | 上一個索引鍵狀態。 如果索引鍵在傳送訊息之前關閉,則值為 1;如果機碼已啟動,則為 0。 |
31 | 轉換狀態。 如果按下按鍵,則值為 0,如果放開則為 1。 |
傳回
類型: LRESULT
如果 程式碼 小於零,攔截程式必須傳回 CallNextHookEx所傳回的值。
如果 程式碼 大於或等於零,且攔截程式未處理訊息,強烈建議您呼叫 CallNextHookEx 並傳回其傳回的值;否則,已安裝WH_KEYBOARD勾點 的其他 應用程式將不會收到攔截通知,而且可能會因為結果而不正確。
如果攔截程式處理訊息,它可能會傳回非零值,以防止系統將訊息傳遞至攔截鏈結的其餘部分或目標視窗程式。
備註
應用程式會藉由指定WH_KEYBOARD勾點類型和呼叫SetWindowsHookExA/SetWindowsHookExW函式中的攔截程式指標來安裝攔截程式。
此勾點可能會在安裝它的執行緒內容中呼叫。 呼叫是透過將訊息傳送至安裝攔截的執行緒來進行。 因此,安裝攔截的執行緒必須有訊息迴圈。