WM_CANCELJOURNAL消息

警告

从 Windows 11 开始,日志挂钩 API 不受支持,并将在将来的版本中删除。 因此,强烈建议改为调用 SendInput TextInput API。

当用户取消应用程序的日记活动时发布到应用程序。 消息使用 NULL 窗口句柄发布。

#define WM_CANCELJOURNAL                0x004B

参数

wParam

未使用此参数。

lParam

未使用此参数。

返回值

类型: void

此消息不返回值。 它旨在从应用程序的main循环或 GetMessage 挂钩过程中进行处理,而不是从窗口过程中进行处理。

注解

日记记录和播放模式是对系统施加的模式,允许应用程序按顺序录制或播放用户输入。 应用程序安装 JournalRecordProcJournalPlaybackProc 挂钩过程时,系统会进入这些模式。 当系统处于上述任一日记模式时,应用程序必须轮流读取输入队列中的输入。 如果任何一个应用程序在系统处于日记模式时停止读取输入,则其他应用程序将被迫等待。

为了确保一个可靠的系统(任何一个应用程序都不能使系统无响应),当用户按 Ctrl+ESC 或 CTRL+ALT+DEL 时,系统会自动取消任何日记活动。 然后,系统会取消任何日记挂钩过程,并将具有 NULL 窗口句柄的WM_CANCELJOURNAL消息发布到设置日记挂钩的应用程序。

WM_CANCELJOURNAL消息具有 NULL 窗口句柄,因此无法将其调度到窗口过程。 应用程序可通过两种方式查看WM_CANCELJOURNAL消息:如果应用程序在其自己的main循环中运行,则必须在调用 GetMessagePeekMessage 和调用 DispatchMessage 之间捕获该消息。 如果应用程序未在其自己的main循环中运行,则必须通过调用 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

概念性

挂钩