Функция BlockInput (winuser.h)

Блокирует доступ к приложениям событий ввода с помощью клавиатуры и мыши.

Синтаксис

BOOL BlockInput(
  [in] BOOL fBlockIt
);

Параметры

[in] fBlockIt

Тип: BOOL

Назначение функции. Если этот параметр имеет значение TRUE, события ввода с помощью клавиатуры и мыши блокируются. Если этот параметр имеет значение FALSE, события клавиатуры и мыши разблокируются. Обратите внимание, что только поток, который заблокировал входные данные, может успешно разблокировать входные данные.

Возвращаемое значение

Тип: BOOL

Если функция выполняется успешно, возвращается ненулевое значение.

Если входные данные уже заблокированы, возвращаемое значение равно нулю. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Если вход заблокирован, реальный физический ввод с мыши или клавиатуры не повлияет на синхронное состояние клавиши очереди ввода ( сообщается GetKeyState и GetKeyboardState), а также не повлияет на состояние асинхронного ключа (сообщает GetAsyncKeyState). Однако поток, блокирующий ввод, может повлиять на оба этих состояния ключей путем вызова SendInput. Ни один другой поток не может это сделать.

Система разблокировать ввод будет в следующих случаях:

  • Поток, который заблокировал ввод, неожиданно завершает работу без вызова Метода BlockInput с параметром fBlock , имеющим значение FALSE. В этом случае система выполняет правильную очистку и повторно включает входные данные.
  • Пользователь нажимает клавиши CTRL+ALT+DEL или система вызывает модальное окно " Жесткая системная ошибка " (например, при сбое программы или сбое устройства).

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h
Библиотека User32.lib
DLL User32.dll

См. также раздел

Основные понятия

GetAsyncKeyState

GetKeyState

GetKeyboardState

Ввод с клавиатуры

Справочные материалы

SendInput