Поделиться через


сообщение WM_CANCELJOURNAL

Предупреждение

API перехватчиков журналов не поддерживаются начиная с Windows 11 и будут удалены в будущем выпуске. Из-за этого мы настоятельно рекомендуем вместо этого вызывать API SendInput SendInput TextInput.

Опубликовано в приложении, когда пользователь отменяет действия журнала приложения. Сообщение публикуется с дескриптором 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. Если приложение не выполняется в собственном главном цикле, он должен задать процедуру перехватчика GetMsgPro c (вызов SetWindowsHookEx указание типа перехватчика WH_GETMESSAGE), которая проверяет сообщение.

Когда приложение видит сообщение WM_CANCELJOURNAL, оно может предполагать две вещи: пользователь намеренно отменил запись журнала или режим воспроизведения, а система уже отключила все процедуры записи журнала или перехватчика воспроизведения.

Обратите внимание, что описанные выше сочетания клавиш (CTRL+ESC или CTRL+ALT+DEL) вызывают отмену журналов системой. Если любое приложение не отвечает, они предоставляют пользователю средства восстановления. VK_CANCEL код виртуального ключа (обычно реализован в сочетании клавиш CTRL+BREAK) — это то, что приложение, которое находится в режиме записи журнала, должно отслеживаться как сигнал о том, что пользователь хочет отменить действие журнала. Разница заключается в том, что наблюдение за VK_CANCEL является предлагаемым поведением для приложений журнала, в то время как CTRL+ESC или CTRL+ALT+DEL приводит к отмене журналирования независимо от поведения приложения журнала.

Требования

Требование Ценность
Минимальный поддерживаемый клиент
Windows 2000 Профессиональный [только классические приложения]
Минимальный поддерживаемый сервер
Windows 2000 Server [только классические приложения]
Заголовок
Winuser.h (включая Windows.h)

См. также

Справка

JournalPlaybackProc

JournalRecordProc

GetMsgProc

SetWindowsHookEx

Концептуальный

крючки