2011-10-05 4 views
2

J'ai regardé un exemple de code pour développer un hook de clavier alt-tab mais je ne semble pas comprendre le tout. Je comprends qu'un .dll est écrit et que d'une manière ou d'une autre est injecté à tous les processus.C++ Alt-Tab Hook

Existe-t-il un guide de haut en bas sur la façon de procéder pour écrire la dll et la charger?

+0

Je ne suis pas sûr si un crochet de clavier est la bonne réponse à celui-ci. J'aurais tendance à utiliser un crochet de message sur le processus qui a enregistré le raccourci Alt + Tab d'origine. – CodesInChaos

+0

@CodeInChaos: 'Alt + Tab' est un raccourci défini par le système pour basculer entre les fenêtres ouvertes. Ce n'est pas un raccourci défini par l'application. –

+0

@SirRoot: qu'est-ce que tu ne comprends pas exactement? C'est plutôt simple. La DLL implémente une fonction de rappel pour gérer les événements de clavier, puis la DLL ou le fichier EXE appelle 'SetWindowsHookEx()' pour enregistrer ce rappel avec le système d'exploitation. Les hameçons sont chaînés, donc quand le rappel est appelé, il doit appeler 'CallNextHookEx()' pour passer les données au prochain crochet de la chaîne. Lorsque vous avez terminé le hook, appelez 'UnhookWindowsHookEx()' pour libérer votre hook. Qu'est-ce qui est confus à ce sujet? –

Répondre

1

Les crochets de clavier sont une ressource réellement partagée, c'est-à-dire que cela dépend de l'empilement des programmes les uns sur les autres. C'est toujours un peu risqué d'en insérer un dans la chaîne. Puis-je demander à quoi sert le crochet? Qu'est-ce que vous essayez d'accomplir avec le crochet?

+0

Je veux désactiver la fermeture de mon logiciel car je fais des expériences avec Windows XP embarqué. Je ne veux pas que l'utilisateur utilise alt-tab, control-alt-del, ou quoi que ce soit pour se mettre derrière l'utilisation principale du système et pêcher autour du système d'exploitation. J'ai lu qu'un filtre ou un crochet de clavier était le seul moyen d'empêcher alt-tab, à moins qu'il y ait un autre moyen? – SirRoot