Wie kann ich die Tastatur mit C++ in Windows vollständig deaktivieren? Und mit vollständig deaktivieren meine ich, so dass sogar Ctrl + Alt + Delete funktioniert nicht. Ich habe in Erwägung gezogen, einen Tastaturtreiber zu verwenden, aber ich glaube, man muss den Computer neu starten, nachdem er installiert wurde, aber da ich ihn nur für ein paar Minuten deaktivieren muss, würde das nicht wirklich funktionieren.
Antworten
Zu viele Anzeigen?Das ist nicht wirklich möglich.
WinLogon ist als der Prozess konzipiert, der die Ctrl + Alt + Del Tastendruck, auch wenn alle anderen Dinge hängen bleiben oder sterben. Dies ist die Ausfallsicherung gegen böswillige Sitzungen usw. Es gibt also keine offensichtliche Abhilfe.
Vielleicht würde ein Tastaturfilter-Treiber Ihr Anliegen möglich machen, aber das ist ein echter Kernel-Treiber.
Sie könnten einen Tastaturhaken installieren und die Nachrichten herausfiltern, aber Sie müssten Ihre Anwendung als oberstes Fenster haben. Selbst dann Ctrl + Alt + Del würde nicht herausgefiltert werden.
Hier ist SetWindowsHookEx auf MSDN
Beispiel für Anschließen der Tastatur
Sie könnten verwenden BlockEingang Funktion. Aber sie blockiert nicht CTRL + ALT + DEL .
Ok, hier sind einige zufällige Vorschläge. Ich habe keine endgültige Antwort, aber hier würde ich anfangen:
1) SetupDiRemoveDevice ist wahrscheinlich die API, die Sie aufrufen möchten. Um sie aufzurufen, müssen Sie allerdings eine Menge anderer Geräteaufrufe tätigen. Zählen Sie Ihre HID- und USB-Geräte auf und finden Sie die Tastatur. Suchen Sie zunächst nach der VID/PID des eigentlichen Geräts.
2) Löschen Sie die Treiber kdbclass.sys und kbdhid.sys. Sie werden mit der Windows-Systemdatei kämpfen müssen, um dies zu tun. Ich habe keine Ahnung, ob dies funktionieren wird, aber es klingt interessant und einfach.
3) Schreiben Sie einen USB-Filtertreiber. Ihr Treiber muss die Vid/Pid des zu filternden Geräts kennen (oder übergeben bekommen), aber es könnte funktionieren.
5 Stimmen
Warum glauben Sie, dass Sie das tun müssen?