WM_CANCELJOURNAL訊息

警告

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

當使用者取消應用程式的日誌活動時,張貼至應用程式。 訊息會以 Null 視窗控制碼張貼。

#define WM_CANCELJOURNAL                0x004B

參數

wParam

不使用這個參數。

lParam

不使用這個參數。

傳回值

類型: void

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

備註

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

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

WM_CANCELJOURNAL訊息具有Null視窗控制碼,因此無法分派至視窗程式。 有兩種方式可讓應用程式查看 WM_CANCELJOURNAL 訊息:如果應用程式是在自己的主要迴圈中執行,它必須攔截其 GetMessagePeekMessage 呼叫之間的訊息,以及其 對 DispatchMessage的呼叫。 如果應用程式不是在其主迴圈中執行,則必須透過呼叫SetWindowsHookEx來設定GetMsgProc攔截程式 (,以指定WH_GETMESSAGE攔截類型) 監看訊息。

當應用程式看到 WM_CANCELJOURNAL 訊息時,它可以假設有兩件事:使用者刻意取消日誌記錄或播放模式,而且系統已經取消任何日誌記錄或播放攔截程式。

請注意,上述按鍵組合 (CTRL+ESC 或 CTRL+ALT+DEL) 會導致系統取消日誌。 如果有任何一個應用程式沒有回應,他們會為使用者提供復原的方法。 VK_CANCEL虛擬按鍵程式碼 (通常會實作為 CTRL+BREAK 鍵組合,) 是處於日誌記錄模式的應用程式應該watch,做為使用者想要取消日誌活動的訊號。 差別在於監看 VK_CANCEL 是日誌應用程式的建議行為,而 CTRL+ESC 或 CTRL+ALT+DEL 會導致系統取消日誌,而不論日誌應用程式的行為為何。

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Winuser.h (包括 Windows.h)

另請參閱

參考

JournalPlaybackProc

JournalRecordProc

GetMsgProc

SetWindowsHookEx

概念

勾點