JournalRecordProc 函式
描述
搭配 SetWindowsHookEx 函式使用的應用程式定義或程式庫定義回呼函式。 函式會記錄系統從系統訊息佇列中移除的訊息。 之後,應用程式可以使用 JournalPlaybackProc 攔截程式來播放訊息。
HOOKPROC類型會定義這個回呼函式的指標。 JournalRecordProc 是應用程式定義或程式庫定義函數名稱的預留位置。
LRESULT CALLBACK JournalRecordProc(
_In_ int code,
WPARAM wParam,
_In_ LPARAM lParam
);
參數
程式碼 [in]
類型: int
指定如何處理訊息。 如果 程式碼 小於零,攔截程式必須將訊息傳遞至 CallNextHookEx 函式,而不需進一步處理,而且應該傳回 CallNextHookEx傳回的值。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
HC_ACTION 0 | lParam參數是EVENTMSG結構的指標,其中包含從系統佇列中移除之訊息的相關資訊。 攔截程式必須將結構的內容複寫到緩衝區或檔案,以記錄結構的內容。 |
HC_SYSMODALOFF 5 | 系統強制回應對話方塊已終結。 攔截程式必須繼續錄製。 |
HC_SYSMODALON 4 | 系統強制回應對話方塊隨即顯示。 在對話方塊終結之前,攔截程式必須停止錄製。 |
wParam
類型: WPARAM
不使用這個參數。
lParam [in]
類型: LPARAM
EVENTMSG結構的指標,其中包含要記錄的訊息。
傳回
類型: LRESULT
會忽略傳回值。
備註
JournalRecordProc攔截程式必須複製,但不能修改訊息。 攔截程式將控制權傳回系統之後,訊息會繼續處理。
在對 SetWindowsHookEx函式的呼叫中指定WH_JOURNALRECORD類型和勾點程式的指標,以安裝JournalRecordProc攔截程式。
JournalRecordProc攔截程式不需要存在於動態連結程式庫中。 JournalRecordProc攔截程式可以存在於應用程式本身。
不同于大部分其他全域攔截程式, JournalRecordProc 和 JournalPlaybackProc 攔截程式一律會在設定攔截的執行緒內容中呼叫。
已安裝JournalRecordProc勾點程式的應用程式應該watch VK_CANCEL虛擬按鍵程式 (此程式在大部分鍵盤上實作為 CTRL+BREAK 按鍵組合) 。 應用程式應該將此虛擬金鑰程式碼解譯為使用者想要停止日誌錄製的訊號。 應用程式應該會結束錄製順序並移除 JournalRecordProc 攔截程式來回應。 移除很重要。 它可防止日誌應用程式在攔截程式內停止鎖定系統。
此角色是停止 journl 錄製的訊號,表示無法記錄 CTRL+BREAK 按鍵組合本身。 由於 CTRL+C 按鍵組合沒有這類角色,例如日誌訊號,因此可以記錄。 無法錄製其他兩個按鍵組合:CTRL+ESC 和 CTRL+ALT+DEL。 這兩個主要組合會導致系統停止所有日誌活動 (記錄或播放) 、移除所有日誌勾點,並將 WM_CANCELJOURNAL 訊息張貼至日誌應用程式。