WM_CANCELJOURNAL消息

警告

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

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

#define WM_CANCELJOURNAL                0x004B

参数

wParam

不使用此参数。

lParam

不使用此参数。

返回值

类型:void

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

注解

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

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

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

概念

挂钩