如何在Windows中使用c ++完全禁用键盘?完全禁用我的意思是,即使 Ctrl + Alt + 删除也不起作用。我确实考虑使用键盘驱动程序,但我认为你需要在安装后重新启动计算机,但因为我只需要禁用它几分钟就不会真正起作用。
答案 0 :(得分:10)
这实际上是不可能的。
WinLogon被设计为截取 Ctrl + Alt + Del 按键的一个进程,即使所有其他东西都挂起或死亡。 这是针对恶意会话的故障保护等。因此没有明显的解决方法。
也许键盘过滤器驱动程序会使您的请求成为可能,但这是一个真正的内核驱动程序。
答案 1 :(得分:7)
你无法在不移除键盘或更换键盘驱动程序的情况下禁用 Ctrl - Alt - 删除,它会生成内核级通知
答案 2 :(得分:1)
您可以安装键盘挂钩并过滤掉消息,但您可能需要将应用程序作为最顶层的窗口。即使这样, Ctrl + Alt + Del 也不会被过滤掉。
这是MSDN上的SetWindowsHookEx
的示例答案 3 :(得分:1)
您可以使用BlockInput功能。但它不会阻止 CTRL + ALT + DEL 。
答案 4 :(得分:0)
好的,这里有几个随机的建议。我没有明确的答案,但这是我要开始的地方:
1)SetupDiRemoveDevice可能是您要调用的API。虽然要调用它,但您需要进行许多其他设备枚举调用。枚举您的HID和USB设备并找到键盘。首先查找启动器的实际设备的VID / PID。
2)删除驱动程序kdbclass.sys和kbdhid.sys。你将与Windows系统文件作斗争来做到这一点。我不知道这是否有效,但听起来有趣而且简单。
3)编写USB过滤器驱动程序。您的驱动程序需要知道(或传递)要过滤的设备的vid / pid,但它可能会有效。
答案 5 :(得分:0)
如果您想暂时禁用 Ctrl+Alt+Del,我建议您使用 SuspendThread() 然后从 processthreadsapi.h 使用 ResumeThread() 暂停 winlogon(您必须烦人地进行管理员操作)