2009-07-31 8 views
2

Comment puis-je désactiver complètement le clavier en utilisant C++ dans Windows? Et par désactiver complètement je veux dire si même Ctrl + Alt + Supprimer ne fonctionne pas. J'ai envisagé d'utiliser un pilote de clavier mais je pense que vous devez redémarrer l'ordinateur après son installation, mais comme je n'ai besoin que de le désactiver pendant quelques minutes, cela ne fonctionnerait pas vraiment.Désactiver le clavier dans Windows C++?

+5

Pourquoi pensez-vous que vous devez faire cela? –

Répondre

7

Vous ne pouvez pas désactiver Ctrl - Alt - Supprimer sans enlever le clavier ou le remplacement du pilote du clavier, il génère une notification au niveau du noyau.

10

Ce n'est pas vraiment possible.

WinLogon est conçu comme un processus qui intercepte le même quand toutes les autres choses traînent ou meurent Ctrl +Alt +Del de touche,. Ceci est la sécurité intégrée contre les sessions malveillantes, etc. Il n'y a donc pas de solution de contournement évidente. Peut-être qu'un pilote de filtre de clavier rendrait votre requête possible, mais c'est un vrai pilote de noyau.

1

Vous pouvez installer un raccourci clavier et filtrer les messages, mais vous aurez peut-être besoin de votre application comme fenêtre principale. Même alors Ctrl + Alt + Del ne serait pas filtré.

est ici SetWindowsHookEx sur MSDN

Exemple de Hooking the Keyboard

1

Vous pouvez utiliser la fonction BlockInput. Mais il ne bloque pas CTRL + ALT + DEL.

0

Ok, voici quelques suggestions aléatoires. Je n'ai pas de réponse définitive, mais voici où je commencerais:

1) SetupDiRemoveDevice est probablement l'API que vous voulez appeler. Bien que pour l'appeler, vous devrez faire beaucoup d'autres appels d'énumération de périphérique. Énumérer vos périphériques HID et USB et trouver le clavier. Commencez par rechercher le VID/PID de l'appareil réel pour les démarreurs.

2) Supprimez les pilotes kdbclass.sys et kbdhid.sys. Vous allez vous battre le fichier système Windows pour le faire. Je n'ai aucune idée si cela fonctionnera, mais semble intéressant et simple.

3) Écrivez un pilote de filtre USB. Votre pilote devra savoir (ou être passé) la vid/pid de l'appareil à filtrer, mais cela pourrait fonctionner.

Questions connexes