2009-07-31 98 views
2

如何在Windows中完全禁用使用C++的键盘?并通过完全禁用我的意思是,所以即使Ctrl + Alt + 删除不起作用。我确实考虑过使用键盘驱动程序,但我认为在安装后需要重新启动计算机,但是因为我只需要将其禁用几分钟而不会真正起作用。在Windows C++中禁用键盘?

+5

为什么你认为你需要这样做? – 2009-07-31 20:42:48

回答

7

您不能禁用按Ctrl - Alt键 - 删除无需拆卸键盘或更换键盘驱动程序,它会生成一个内核级的通知。

10

这是不可能的。

WinLogon的被设计成一个过程,它可以拦截该Ctrl键 + Alt键 + 德尔按键,即使当所有其他东西挂起或死亡。 这是针对恶意会话的故障保护等,因此没有明显的解决方法。

也许键盘过滤器驱动程序会使您的请求成为可能,但这是一个真正的内核驱动程序。

1

您可以安装键盘挂钩并过滤掉消息,但您可能需要将应用程序设置为最上方的窗口。即使那么Ctrl + Alt + Del不会被过滤掉。

这里的SetWindowsHookEx MSDN上

Hooking the Keyboard

1

你可以使用BlockInput功能。但它不会阻止CTRL + ALT + DEL

0

好的,这里有几个随机的建议。我没有确定的答案,但这里是我要开始的地方:

1)SetupDiRemoveDevice可能是您想要调用的API。尽管要调用它,您还需要进行大量其他设​​备枚举调用。枚举您的HID和USB设备并找到键盘。首先查找启动器的实际设备的VID/PID。

2)删除驱动程序kdbclass.sys和kbdhid.sys。你将与​​Windows系统文件做斗争。我不知道这是否会奏效,但听起来很有趣,很简单。

3)写一个USB过滤器驱动程序。您的驱动程序需要知道(或传递)要过滤的设备的vid/pid,但它可能有效。