Capture d'événements souris / clavier en dehors du formulaire (application en arrière-plan)
J'ai une application qui s'exécute en arrière-plan (minimisé/barre des tâches). J'ai besoin d'être en mesure de détecter l'activité de souris (clics, déplacer) ainsi que l'activité du clavier.
Quelle est la meilleure façon de le faire compte tenu de la contrainte que ma fenêtre n'est pas "porté" ?
source d'informationauteur Andy Hin
Vous devez vous connecter pour publier un commentaire.
La magie des mots sont des fenêtres crochets. Ceux-ci sont créés avec un p/invoke appel à
SetWindowsHookEx
. Vous pouvez configurer un crochet à surveiller, entre autres, les évènements souris et clavier. Normalement, ces crochets sont des locaux à l'application, mais vous pouvez également créer des accroches globales. Microsoft KB montre comment.Cependant, soyez conscient que tous les types de global crochets peuvent être utilisés .NET. En particulier, il y a seulement deux qui vous peut utilisation: le de bas niveau clavier et de la souris crochets, connu comme
WH_KEYBOARD_LL
etWH_MOUSE_LL
. Heureusement, ce sont juste ce dont vous avez besoin.Prendre un coup d'oeil à cette bibliothèque http://globalmousekeyhook.codeplex.com/.
Il est à 100% de code c# pour installer mondiale de la souris et du clavier crochets.
Elle enveloppe le faible niveau des crochets dans les communes windows forms évènements souris et clavier.