禁止物理键盘输入

BlockInput函数阻塞键盘及鼠标事件到达应用程序
函数原型

BOOL WINAPI BlockInput(
  _In_ BOOL fBlockIt
);

参数说明
true表示鼠标和键盘事件将被阻塞;false鼠标和键盘事件不被阻塞。但是只有当该线程成功调用阻塞后才能解除阻塞。
返回值说明
如果函数调用成功,返回非0值。
如果在调用函数前输入已经被阻塞,则返回值为0。

示例

  [DllImport("user32.dll")]
  public static extern bool BlockInput(bool fBlockIt);

程序意外意外退出,BlockInput设置为false是无效的
对CTRL+ALT+DEL组合键也是无效的

当鼠标键盘被锁住,也可以通过下面的方式输入

System.Windows.Forms.SendKeys.SendWait("11111");

https://msdn.microsoft.com/en-us/library/windows/desktop/ms646290(v=vs.85).aspx

原文地址:https://www.cnblogs.com/liunlls/p/BlockInput.html