KeyboardProc 回呼函式

Description

應用程式定義或程式庫定義的回呼函式,用於SetWindowsHookExA/SetWindowsHookExW函式。

每當應用程式呼叫GetMessagePeekMessageA/PeekMessageW函式,且鍵盤訊息 (WM_KEYUPWM_KEYDOWN進行處理時,系統就會呼叫此函式。

HOOKPROC類型會定義這個回呼函式的指標。 KeyboardProc 是應用程式定義或程式庫定義函數名稱的預留位置。

LRESULT CALLBACK KeyboardProc(
  _In_ int    code,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

參數

程式碼 [in]

類型: int

攔截程式用來判斷如何處理訊息的程式碼。

如果 程式碼 小於零,攔截程式必須將訊息傳遞至 CallNextHookEx 函式,而不需進一步處理,而且應該傳回 CallNextHookEx傳回的值。

此參數可以是下列其中一個值。

意義
HC_ACTION 0 wParamlParam參數包含按鍵訊息的相關資訊。
HC_NOREMOVE 3 wParamlParam參數包含按鍵訊息的相關資訊,而且按鍵訊息尚未從訊息佇列中移除。 (名為 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函式中的攔截程式指標來安裝攔截程式。

此勾點可能會在安裝它的執行緒內容中呼叫。 呼叫是透過將訊息傳送至安裝攔截的執行緒來進行。 因此,安裝攔截的執行緒必須有訊息迴圈。

另請參閱