警告
從 Windows 11 開始,不支援日誌攔截 API,未來版本將會移除。 因此,強烈建議改為呼叫 sendInputTextInput APISendInput。
當使用者取消應用程式的日誌活動時,張貼至應用程式。 訊息會以 NULL 視窗句柄張貼。
#define WM_CANCELJOURNAL 0x004B
參數
-
wParam
-
不使用此參數。
-
lParam
-
不使用此參數。
返回值
類型:void
此訊息不會傳回值。 它應該從應用程式的主要迴圈或 GetMessage 攔截程式來處理,而不是從視窗程序處理。
備註
日誌記錄和播放模式是強加於系統上的模式,可讓應用程式循序錄製或播放用戶輸入。 當應用程式安裝 JournalRecordProc 或 JournalPlaybackProc 攔截程式時,系統會進入這些模式。 當系統處於上述任一日誌模式時,應用程式必須輪流從輸入佇列讀取輸入。 如果任何一個應用程式在系統處於日誌模式時停止讀取輸入,則其他應用程式會強制等候。
為了確保健全的系統,任何一個應用程式都無法回應,當使用者按下 CTRL+ESC 或 CTRL+ALT+DEL 時,系統會自動取消任何日誌活動。 接著,系統會取消任何日誌攔截程式,並將具有 NULL 視窗句柄的 WM_CANCELJOURNAL 訊息張貼至設定日誌攔截的應用程式。
WM_CANCELJOURNAL 訊息具有 NULL 視窗句柄,因此無法分派至窗口程式。 應用程式有兩種方式可查看 WM_CANCELJOURNAL 訊息:如果應用程式在自己的主要迴圈中執行,則必須在 呼叫 getMessage 或 PeekMessage 和呼叫 dispatchMessage之間攔截訊息。 如果應用程式未在自己的 main 循環中執行,它必須設定 GetMsgProc 攔截程式(透過 呼叫 setWindowsHookEx 指定監看訊息的 WH_GETMESSAGE 攔截類型)。
當應用程式看到 WM_CANCELJOURNAL 訊息時,可以假設有兩件事:使用者已刻意取消日誌記錄或播放模式,而且系統已取消任何日誌記錄或播放攔截程式。
請注意,上述按鍵組合(CTRL+ESC 或 CTRL+ALT+DEL)會導致系統取消日誌。 如果有任何一個應用程式沒有回應,他們會為使用者提供復原方式。 VK_CANCEL 虛擬密鑰程式代碼(通常實作為 CTRL+BREAK 按鍵組合)是處於日誌記錄模式的應用程式應該監看的,作為使用者想要取消日誌活動的訊號。 差別在於,監看 VK_CANCEL 是日誌應用程式的建議行為,而 CTRL+ESC 或 CTRL+ALT+DEL 會導致系統取消日誌,而不論日誌應用程式的行為為何。
需求
| 要求 | 價值 |
|---|---|
| 最低支援的用戶端 |
Windows 2000 Professional [僅限傳統型應用程式] |
| 最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
| 頁首 |
|
另請參閱