共用方式為


WM_CANCELJOURNAL訊息

警告

從 Windows 11 開始,不支援日誌攔截 API,未來版本將會移除。 因此,強烈建議改為呼叫 sendInputTextInput APISendInput。

當使用者取消應用程式的日誌活動時,張貼至應用程式。 訊息會以 NULL 視窗句柄張貼。

#define WM_CANCELJOURNAL                0x004B

參數

wParam

不使用此參數。

lParam

不使用此參數。

返回值

類型:void

此訊息不會傳回值。 它應該從應用程式的主要迴圈或 GetMessage 攔截程式來處理,而不是從視窗程序處理。

備註

日誌記錄和播放模式是強加於系統上的模式,可讓應用程式循序錄製或播放用戶輸入。 當應用程式安裝 JournalRecordProcJournalPlaybackProc 攔截程式時,系統會進入這些模式。 當系統處於上述任一日誌模式時,應用程式必須輪流從輸入佇列讀取輸入。 如果任何一個應用程式在系統處於日誌模式時停止讀取輸入,則其他應用程式會強制等候。

為了確保健全的系統,任何一個應用程式都無法回應,當使用者按下 CTRL+ESC 或 CTRL+ALT+DEL 時,系統會自動取消任何日誌活動。 接著,系統會取消任何日誌攔截程式,並將具有 NULL 視窗句柄的 WM_CANCELJOURNAL 訊息張貼至設定日誌攔截的應用程式。

WM_CANCELJOURNAL 訊息具有 NULL 視窗句柄,因此無法分派至窗口程式。 應用程式有兩種方式可查看 WM_CANCELJOURNAL 訊息:如果應用程式在自己的主要迴圈中執行,則必須在 呼叫 getMessagePeekMessage 和呼叫 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 [僅限傳統型應用程式]
頁首
Winuser.h (包括 Windows.h)

另請參閱

參考

JournalPlaybackProc

JournalRecordProc

GetMsgProc

SetWindowsHookEx

概念