警告
从 Windows 11 开始,日志挂钩 API 不受支持,将在将来的版本中删除。 因此,强烈建议改为调用 SendInput TextInput API。
当用户取消应用程序的日记活动时发布到应用程序。 该消息以 NULL 窗口句柄 发布。
#define WM_CANCELJOURNAL 0x004B
参数
-
wParam
-
不使用此参数。
-
lParam
-
不使用此参数。
返回值
类型:void
此消息不返回值。 它旨在从应用程序的主循环或 GetMessage 挂钩过程(而不是从窗口过程)进行处理。
注解
日记记录和播放模式是在系统上施加的模式,允许应用程序按顺序录制或播放用户输入。 当应用程序安装 JournalRecordProc 或 JournalPlaybackProc 挂钩过程时,系统会进入这些模式。 当系统处于上述任一日记模式时,应用程序必须轮流从输入队列读取输入。 如果一个应用程序在系统处于日记模式时停止读取输入,则其他应用程序将被迫等待。
为了确保可靠的系统,不能由任何一个应用程序无响应的系统,当用户按 Ctrl+ESC 或 Ctrl+Alt+DEL 时,系统会自动取消任何日记活动。 然后,系统会取消调用任何日记挂钩过程,并将 WM_CANCELJOURNAL 消息(NULL 窗口句柄)发布到设置日记挂钩的应用程序。
WM_CANCELJOURNAL 消息具有 NULL 窗口句柄,因此无法将其调度到窗口过程。 应用程序可以通过两种方式查看 WM_CANCELJOURNAL 消息:如果应用程序在其自己的主循环中运行,则它必须捕获其调用 getMessage 或 PeekMessage 和调用 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 [仅限桌面应用] |
标题 |
|
另请参阅