Comment puis-je intercepter tous les événements clés, y compris ctrl + alt + del et ctrl + tab?

J’écris une application de type économiseur d’écran qui doit empêcher l’utilisateur d’accéder au système sans saisir de mot de passe. Je veux attraper / supprimer les différentes méthodes qu’un utilisateur peut essayer de quitter l’application, mais toutes les recherches que je fais semblent indiquer “vous ne pouvez pas”.

Tout en C # ou C ++ serait génial. J’ai pensé à désactiver le clavier, mais j’aurais alors d’autres problèmes.

Pour append à ce que Shog9 a dit, si votre application pouvait intercepter ctrl + alt + del, votre application pourrait prétendre être la boîte de dialog de connexion Windows et ainsi inciter l’utilisateur à saisir ses informations d’identification dans votre application.

Si vous souhaitez remplacer la boîte de dialog Connexion Windows, voir Winlogon et GINA (mais ceci dit, “les DLL GINA sont ignorées dans Windows Vista” et je n’ai pas entendu quoi pour Vista).

si quelqu’un me demandait, je ne leur dirais pas qu’ils ne peuvent pas.

Plus précisément, votre “logiciel d’application” ne peut pas: à la place, seul un “logiciel système” peut le faire; Et ce n’est pas que vous ne soyez pas autorisé ou pas capable d’écrire un logiciel système, mais votre OP semblait très clairement demander comment le faire sans écrire un logiciel système … et la réponse à cela est que vous pouvez ‘ t: parce que le système est conçu pour empêcher une application d’acquérir ces combinaisons de touches.

Pouvez-vous me donner des instructions pour écrire les choses du système? Je pense en fait que ce serait mieux si c’était au niveau du système. C’est pour un OEM si bon. Aussi, si je l’ai écrit au niveau du système, je pourrais écrire une application pour la contrôler.

Un pilote de périphérique de filtrage de clavier, ou une DLL GINA, par exemple, serait considéré comme un logiciel système: installé par un administrateur (ou un équipementier) et exécuté dans le cadre du système d’exploitation.

Je ne connais pas GINA au-delà de son nom; et j’ai déjà (ci-dessus) donné un lien dans MSDN. Je m’attends à ce que ce soit le code de mode utilisateur Win32.

Les pilotes de périphérique sont un sujet différent: par exemple, Mise en route du développement de pilotes .

Est-il possible de remapper le clavier pour que la suppression ne soit pas là?

Je ne suis toujours pas sûr que vous et / ou votre patron ayez la bonne idée. À mon humble avis, vous ne devriez pas être une application qui empêche l’utilisateur d’appuyer sur Ctrl-Alt-Suppr. Si vous souhaitez empêcher l’utilisateur d’accéder au système sans saisir de mot de passe, vous devez verrouiller (protéger par mot de passe) le système, comme si l’utilisateur avait appuyé sur Ctrl Alt Suppr, puis sélectionné “Verrouiller cet ordinateur”. Pour déverrouiller l’ordinateur, ils doivent alors appuyer sur Ctrl Alt Suppr et entrer leurs informations d’identification dans WinLogon.

Cependant, en ignorant ce que vous devez faire et en vous concentrant plutôt sur ce que vous êtes capable de faire, si vous voulez intercepter le clavier, cela peut apparemment être fait. Je n’ai pas étudié les claviers moi-même, mais cet article et ce post revendiquent le succès, en écrivant un “Keyboard Filter Driver” (qui est une sorte de kernel, pas de Win32, pilote de périphérique). Si vous en écrivez un, vous risquez de subir des réactions indésirables , comme par exemple cette réaction d’un MVP DDK , ou cette réaction d’un produit anti-espionnage .

Vous ne pouvez pas. L’intérêt de Ctrl + Alt + Del est que seul le système peut le gérer, car le système peut toujours le gérer.

Heureusement, Windows prend en charge les économiseurs d’écran protégés par mot de passe (disponibles sous la forme «Sur reprise, protection par mot de passe» dans les propriétés d’affichage ou via la stratégie de groupe). Utilisez juste ça.

Je ne l’ai pas testé mais qu’en est-il de l’utilisation de SetWindowsHookEx ()?

De documentantion MSDN: WH_KEYBOARD_LL

Windows NT / 2000 / XP: installe une procédure de raccordement qui surveille les événements d’entrée de clavier de bas niveau. Pour plus d’informations, consultez la procédure de hook LowLevelKeyboardProc.

Il est possible d’intercepter crtl + alt + del, même s’il est évident que Microsoft a rendu la tâche très difficile, car vous pouviez afficher une boîte de dialog de locking factice et enregistrer les mots de passe des utilisateurs.

La réponse est d’écrire un pilote de périphérique. Je ne me souviens plus si vous pouvez simplement utiliser un vieux filtre clavier, ou si vous devez écrire un clavier ISR. De toute façon, c’est certainement possible, mais avec beaucoup de peine si vous n’avez aucune expérience de pilote.

Comme cela semble être un bon endroit pour la collecte de divers moyens avec lesquels “intercepter” les trois clés de contrôle de Psuedo-Break, alt delete, voici quelque chose que j’ai rencontré hier et qui peut être utile.

http://cuinl.sortingpod.com/Tips/enablectrldel.htm

À mon avis , quand il semble que la seule option pratique et opportune soit de couper l’élecsortingcité (c’est-à-dire l’enlèvement MÉCANIQUE de la batterie d’un ordinateur de poche de type androïde surchargé) pour stopper toute procession ou dysfonctionnement endurer) l’irresponsabilité – il semble qu’une lignée dangereuse et frustrante continue – et continue à s’aggraver.

Surtout avec la suppression des choses sensibles et simples comme les contrôles de volume des haut-parleurs mécaniques. (bien sûr, volumineux, plus de matière, mais bien sûr, c’est juste, ce qui est bien pour un individu ou un être, c’est une conscience infinie et parfaite sans prise en compte ou expérience?)

C’est une lignée d’approches de conception de l’environnement qui est responsable de la réactivité à la partie utilisateur d’une interface technologique critique et vraiment significative. ( Le seul?)

Je dis de remettre des boutons –direct-to-hardware-control – sur les choses – au moins jusqu’à ce que les aspects logiciels de ces technologies soient complètement adaptés à l’interfaçage logiciel artificiel, ce que je compte dans une comptabilité exhaustive de tous les heuristiques. approvisionnements.

Même dans la mécanique de l’univers, je parie qu’il y a une réinitialisation, une restauration, une suspension, un arrêt pratiques de la fonction pour la sécurité et la viabilité fondamentale de la présence de ce qui constitue le concepteur du mystère perpétuel de l’initiation. existence: CONSCIENCE INTELLIGENTE et volonté.

Vous pourriez réaliser cela avec XP et avant, mais avec Vista plus.

Essayez de déterminer si vous pouvez écrire une application qui démarre elle-même comme un économiseur d’écran protégé par mot de passe.

Les écrans de veille peuvent faire plus que simplement afficher de jolies images – j’ai déjà vu des écrans de veille interactifs qui utilisaient la souris et le clavier pour fournir un jeu simple, même si je ne me souviens plus Windows 95. (Dans ce cas, tous les paris sont désactivés).

Qu’en est-il de l’interception des touches Ctrl et Alt pendant l’exécution de votre programme et de l’annulation de ces pressions?

Je ne sais pas comment cela fonctionnerait, voire pas du tout, dans Vista, mais cela vaut la peine d’essayer.

Je me souviens d’avoir fait quelque chose comme ça vers l’an 2001, donc il était probablement en train de tourner à 98. Cela faisait trop longtemps que j’essayais même de bousiller quelque chose comme verrouiller ctrl-alt-del.

Ok .. je ne vais pas poster le code ici Mais le gyst est-ce

créer un hook de clavier. lorsque l’utilisateur appuie sur ctrl || alt || supprimer set bools à true .. s’ils appuient sur autre chose, définissez-les tous sur false.

switch (p_key) { default: Clear(); break; case Keys.LMenu: altHit = true; break; case Keys.RMenu: altHit = true; break; case Keys.LControlKey: ctrlHit = true; break; case Keys.RControlKey: ctrlHit = true; break; case Keys.Delete: delHit = true; break; 

Lorsque l’écran a le focus, le perd au gestionnaire de tâches, fermez le sanglant. L’écran clignote si vite que l’utilisateur ne le remarque jamais. Et je peux faire ce que je veux.

J’admets que c’est un kludge, mais il en résulte l’effet désiré. (OH je voudrais ne pas avoir à faire ça)

“Process Explorer” de Mark Russinovich (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx) le fait, et il l’avait fait avant que Sysinternals ne soit acheté par Microsoft.

Cet article de 2002 mis à jour en 2006 explique un moyen de le faire sans écrire un pilote de clavier. http://www.codeproject.com/KB/system/preventclose.aspx?msg=1666328

Vous pouvez toujours intercepter Ctrl + Alt + Del dans Windows 7.

C’est comme ça que Process Explorer le fait:

http://mygreenpaste.blogspot.com/2005/07/image-file-execution-options-good-evil.html