blockInput 函数 (winuser.h)

阻止键盘和鼠标输入事件到达应用程序。

语法

BOOL BlockInput(
  [in] BOOL fBlockIt
);

参数

[in] fBlockIt

类型: BOOL

函数的用途。 如果此参数为 TRUE,则阻止键盘和鼠标输入事件。 如果此参数为 FALSE,则取消阻止键盘和鼠标事件。 请注意,只有阻止输入的线程才能成功取消阻止输入。

返回值

类型: BOOL

如果该函数成功,则返回值为非零值。

如果已阻止输入,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

阻止输入时,来自鼠标或键盘的实际物理输入不会影响 GetKeyStateGetKeyboardState) 报告的输入队列的同步键状态 (,也不会影响 GetAsyncKeyState) 报告的异步键状态 (。 但是,阻止输入的线程可以通过调用 SendInput 影响这两种键状态。 其他线程无法执行此操作。

在以下情况下,系统将取消阻止输入:

  • 阻止输入的线程意外退出,但未调用 BlockInputfBlock 设置为 FALSE。 在这种情况下,系统会正确清理并重新启用输入。
  • 用户按 Ctrl+ALT+DEL 或系统调用 硬系统错误 模式消息框 (例如,当程序故障或设备) 故障时。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h
Library User32.lib
DLL User32.dll

请参阅

概念性

GetAsyncKeyState

GetKeyState

GetKeyboardState

键盘输入

引用

SendInput