Comment intercepter des messages envoyés à une fenêtre?
Je veux intercepter les messages qui sont envoyés à une fenêtre dans un processus différent. Quelle est la meilleure façon de le faire? Je ne peux pas voir les messages quand j'utilise le du raccordement WH_GETMESSAGE, et je ne suis pas sûr si je peux la sous-classe à travers des processus? Toute aide serait grandement appréciée.
source d'informationauteur Jon Tackabury
Vous devez vous connecter pour publier un commentaire.
Vous devez vous injecter votre propre code dans le processus qui possède les fenêtres que vous souhaitez intercepter des messages. Heureusement,
SetWindowsHookEx()
fait ce assez facile, même si vous avez un peu de mal au début, si vous ne l'ai utilisé dans le processus de connecter jusqu'à maintenant.Je peux vous recommander deux excellents articles sur le sujet:
Si le message est envoyé, plutôt que de posté
WH_GETMESSAGE
de ne pas le voir. Vous avez besoinWH_CALLWNDPROC
. Si vous travaillez à travers le processus, vous aurez besoin d'un système à l'échelle de crochet dans une DLL. Vous ne dites pas comment vous avez appelé SetWindowsHookEx, donc je ne sais pas si votre accrochage a échoué parce qu'elle n'était pas global, ou parce que le message que vous cherchez envoyé.Si vous n'avez pas travaillé à l'échelle du système des crochets avant, j'ai un exemple d'un système à l'échelle de crochet sur mon site ici. C'est un hook clavier, mais le principe est le même.
Arrêtez-moi si je suis involontairement parler ici-bas - votre question était tellement court que je ne pouvez pas déduire de votre niveau d'expertise. Mais de déconner avec des crochets ne implique une certaine expérience...