共用方式為


攔截是系統訊息處理機制中的一個點,應用程式可以安裝子程式來監視系統中的訊息流量,並在訊息到達目標視窗程式之前處理特定類型的訊息。

在本節中

名字 描述
勾點概觀 討論應該如何使用勾點。
使用勾點 示範如何執行與勾點相關聯的工作。
勾點參考 包含 API 參考。

攔截函式

名字 描述
CallMsgFilter 將指定的訊息和攔截程式代碼傳遞至與 WH_SYSMSGFILTERWH_MSGFILTER 攔截程式相關聯的攔截程式。
CallNextHookEx 將勾點信息傳遞至目前攔截鏈結中的下一個攔截程式。 攔截程式可以在處理攔截資訊之前或之後呼叫此函式。
CallWndProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會先呼叫此函式,再呼叫視窗程式來處理傳送至線程的訊息。
CallWndRetProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 呼叫 sendMessage式之後,系統會呼叫此函式。 攔截程式可以檢查訊息;它無法修改它。
CBTProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會先呼叫此函式,再啟動、建立、終結、最小化、最大化、移動或調整視窗大小;完成系統命令之前;從系統消息佇列移除滑鼠或鍵盤事件之前;設定鍵盤焦點之前;或在與系統消息佇列同步處理之前。 計算機型訓練 (CBT) 應用程式會使用此攔截程式從系統接收有用的通知。
DebugProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會先呼叫這個函式,再呼叫與任何類型的勾點相關聯的攔截程式。 系統會傳遞要呼叫至 DebugProc 攔截程式的相關信息,此程式會檢查資訊,並判斷是否允許呼叫攔截。
ForegroundIdleProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每當前景線程即將變成閑置時,系統就會呼叫此函式。
GetMsgProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每當 GetMessagePeekMessage 函式從應用程式消息佇列擷取訊息時,系統就會呼叫此函式。 將擷取的訊息傳回給呼叫端之前,系統會將訊息傳遞至攔截程式。
JournalPlaybackProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 一般而言,應用程式會使用此函式來播放先前由 JournalRecordProc 攔截程式記錄的一系列滑鼠和鍵盤訊息。 只要已安裝 JournalPlaybackProc 攔截程式,就會停用一般滑鼠和鍵盤輸入。
JournalRecordProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 函式會記錄系統從系統消息佇列中移除的訊息。 稍後,應用程式可以使用 JournalPlaybackProc 攔截程式來播放訊息。
KeyboardProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每當應用程式呼叫 getMessagePeekMessage 函式時,系統就會呼叫此函式,而且有要處理的鍵盤訊息(WM_KEYUPWM_KEYDOWN)。
LowLevelKeyboardProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每次即將將新的鍵盤輸入事件張貼到線程輸入佇列時,系統都會呼叫此函式。
LowLevelMouseProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每次將新的滑鼠輸入事件張貼到線程輸入佇列時,系統都會呼叫此函式。
MessageProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會在輸入事件發生於對話框、消息框、功能表或滾動條之後呼叫此函式,但在處理輸入事件所產生的訊息之前。 攔截程式可以監視特定應用程式或所有應用程式所建立之對話框、消息框、功能表或滾動條的訊息。
MouseProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每當應用程式呼叫 getMessagePeekMessage 函式,且有要處理的滑鼠訊息時,系統就會呼叫此函式。
SetWindowsHookEx 將應用程式定義的攔截程式安裝到勾點鏈結中。 您會安裝攔截程式來監視系統是否有特定類型的事件。 這些事件會與特定線程相關聯,或與呼叫線程位於相同桌面中的所有線程相關聯。
ShellProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 函式會從系統接收Shell事件的通知。
SysMsgProc 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會在輸入事件發生於對話框、消息框、功能表或滾動條之後呼叫此函式,但在處理輸入事件所產生的訊息之前。 函式可以監視系統中任何對話框、消息框、功能表或滾動條的訊息。
UnhookWindowsHookEx 拿掉由 setWindowsHookEx函式掛勾鏈結中安裝的攔截程式。

攔截通知

名字 描述
WM_CANCELJOURNAL 當使用者取消應用程式的日誌活動時,張貼至應用程式。 訊息會以 NULL 視窗句柄張貼。
WM_QUEUESYNC 由 CBT 應用程式傳送,以分隔使用者輸入訊息與其他透過 WH_JOURNALPLAYBACK 程式傳送的訊息。

勾點結構

名字 描述
CBT_CREATEWND 包含傳遞至 WH_CBT 攔截程式的資訊,CBTProc建立視窗之前。
CBTACTIVATESTRUCT 包含傳遞至 WH_CBT 攔截程式的資訊,CBTProc啟用視窗之前。
CWPRETSTRUCT 定義傳遞至 WH_CALLWNDPROCRET 攔截程式的訊息參數,CallWndRetProc
CWPSTRUCT 定義傳遞至 WH_CALLWNDPROC 攔截程式的訊息參數,CallWndProc
DEBUGHOOKINFO 包含傳遞至 WH_DEBUG 攔截程式的偵錯資訊,DebugProc
EVENTMSG 包含傳送至系統消息佇列的硬體訊息相關信息。 此結構可用來儲存 JournalPlaybackProc 回呼函式的訊息資訊。
KBDLLHOOKSTRUCT 包含低階鍵盤輸入事件的相關信息。
MOUSEHOOKSTRUCT 包含傳遞至 WH_MOUSE 攔截程式之滑鼠事件的相關信息,MouseProc
MOUSEHOOKSTRUCTEX 包含傳遞至 WH_MOUSE 攔截程式之滑鼠事件的相關信息,MouseProc
MSLLHOOKSTRUCT 包含低階滑鼠輸入事件的相關信息。

SetWinEventHook