鉤
攔截是系統訊息處理機制中的一個點,應用程式可以安裝子程式來監視系統中的訊息流量,並在訊息到達目標視窗程式之前處理特定類型的訊息。
在本節中
名字 | 描述 |
---|---|
勾點概觀 | 討論應該如何使用勾點。 |
使用勾點 | 示範如何執行與勾點相關聯的工作。 |
勾點參考 | 包含 API 參考。 |
攔截函式
名字 | 描述 |
---|---|
CallMsgFilter | 將指定的訊息和攔截程式代碼傳遞至與 WH_SYSMSGFILTER 和 WH_MSGFILTER 攔截程式相關聯的攔截程式。 |
CallNextHookEx | 將勾點信息傳遞至目前攔截鏈結中的下一個攔截程式。 攔截程式可以在處理攔截資訊之前或之後呼叫此函式。 |
CallWndProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會先呼叫此函式,再呼叫視窗程式來處理傳送至線程的訊息。 |
CallWndRetProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 呼叫 sendMessage函式之後,系統會呼叫此函式。 攔截程式可以檢查訊息;它無法修改它。 |
CBTProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會先呼叫此函式,再啟動、建立、終結、最小化、最大化、移動或調整視窗大小;完成系統命令之前;從系統消息佇列移除滑鼠或鍵盤事件之前;設定鍵盤焦點之前;或在與系統消息佇列同步處理之前。 計算機型訓練 (CBT) 應用程式會使用此攔截程式從系統接收有用的通知。 |
DebugProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會先呼叫這個函式,再呼叫與任何類型的勾點相關聯的攔截程式。 系統會傳遞要呼叫至 DebugProc 攔截程式的相關信息,此程式會檢查資訊,並判斷是否允許呼叫攔截。 |
ForegroundIdleProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每當前景線程即將變成閑置時,系統就會呼叫此函式。 |
GetMsgProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每當 GetMessage 或 PeekMessage 函式從應用程式消息佇列擷取訊息時,系統就會呼叫此函式。 將擷取的訊息傳回給呼叫端之前,系統會將訊息傳遞至攔截程式。 |
JournalPlaybackProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 一般而言,應用程式會使用此函式來播放先前由 JournalRecordProc 攔截程式記錄的一系列滑鼠和鍵盤訊息。 只要已安裝 JournalPlaybackProc 攔截程式,就會停用一般滑鼠和鍵盤輸入。 |
JournalRecordProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 函式會記錄系統從系統消息佇列中移除的訊息。 稍後,應用程式可以使用 JournalPlaybackProc 攔截程式來播放訊息。 |
KeyboardProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每當應用程式呼叫 getMessage或 PeekMessage 函式時,系統就會呼叫此函式,而且有要處理的鍵盤訊息(WM_KEYUP 或 WM_KEYDOWN)。 |
LowLevelKeyboardProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每次即將將新的鍵盤輸入事件張貼到線程輸入佇列時,系統都會呼叫此函式。 |
LowLevelMouseProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每次將新的滑鼠輸入事件張貼到線程輸入佇列時,系統都會呼叫此函式。 |
MessageProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 系統會在輸入事件發生於對話框、消息框、功能表或滾動條之後呼叫此函式,但在處理輸入事件所產生的訊息之前。 攔截程式可以監視特定應用程式或所有應用程式所建立之對話框、消息框、功能表或滾動條的訊息。 |
MouseProc | 搭配 SetWindowsHookEx 函式使用的應用程式定義或連結庫定義的回呼函式。 每當應用程式呼叫 getMessage 或 PeekMessage 函式,且有要處理的滑鼠訊息時,系統就會呼叫此函式。 |
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 | 包含低階滑鼠輸入事件的相關信息。 |