簡體   English   中英

在 Windows C++ 中禁用鍵盤?

[英]Disabling the keyboard in windows c++?

如何在 Windows 中使用 C++ 完全禁用鍵盤? 完全禁用我的意思是即使Ctrl + Alt + Delete也不起作用。 我確實考慮過使用鍵盤驅動程序,但我認為您需要在安裝后重新啟動計算機,但因為我只需要禁用它幾分鍾,這實際上不起作用。

這是不可能的。

WinLogon 被設計為攔截Ctrl + Alt + Del按鍵的一個進程,即使在所有其他事情掛起或死亡時也是如此。 這是針對惡意會話等的故障保護。因此沒有明顯的解決方法。

也許鍵盤過濾器驅動程序會使您的請求成為可能,但那是一個真正的內核驅動程序。

您不能在不移除鍵盤或更換鍵盤驅動程序的情況下禁用Ctrl - Alt - Delete ,它會生成內核級通知。

您可以安裝鍵盤掛鈎並過濾掉消息,但您可能需要將應用程序作為最頂部的窗口。 即使那樣Ctrl + Alt + Del也不會被過濾掉。

這是 MSDN 上的SetWindowsHookEx

掛接鍵盤的例子

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

好的,這里有幾個隨機建議。 我沒有明確的答案,但這是我要開始的地方:

1) SetupDiRemoveDevice 可能是您要調用的 API。 盡管要調用它,您還需要進行許多其他設備枚舉調用。 枚舉您的 HID 和 USB 設備並找到鍵盤。 首先為初學者尋找實際設備的 VID/PID。

2) 刪除驅動程序kdbclass.sys 和kbdhid.sys。 你將與​​ Windows 系統文件作斗爭來做到這一點。 我不知道這是否可行,但聽起來很有趣也很簡單。

3) 編寫一個USB過濾器驅動程序。 您的驅動程序需要知道(或被傳遞)要過濾的設備的 vid/pid,但它可能會起作用。

如果你想暫時禁用 Ctrl+Alt+Del,我建議通過使用 SuspendThread() 然后從 processthreadsapi.h 使用 ResumeThread() 暫停 winlogon(你必須煩人的管理員)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM