Hook clavier C++ (ou Java) [Résolu]

Signaler
Messages postés
2
Date d'inscription
mardi 4 mai 2010
Statut
Membre
Dernière intervention
5 mai 2010
-
Messages postés
2
Date d'inscription
mardi 4 mai 2010
Statut
Membre
Dernière intervention
5 mai 2010
-
Bonjour,
Voici mon problème, je souhaiterai faire un programme sous windows que je lancerai sur une invite de commande et qui détecterai les touches du clavier utilisées et en rajouterai dans certains cas.
Je vous rassure c'est pas pour faire un keylogger, en fait je voudrai pouvoir sur n'importe quelle autres application que l'ordinateur affiche "bonjour" quand j'appuierai sur 'B' par exemple.
Mon idée de départ était d'intercepté les touche appuyées, filtrer celles qui m'intéresse et injecter à la place une séquence de touche. Tout ça sur toutes les applications parallèles à mon programme.
Pouvez-vous me guider sur les bibliothèques, classes qui répondront à mon problème ?
Je suis ouvert au C++ et au Java, merci de votre aide !

2 réponses

Messages postés
14738
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
3 juillet 2020
92
Salut,
Tu devrais trouver pas mal de sources sur ce site parlant de Hook clavier en C++...


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
2
Date d'inscription
mardi 4 mai 2010
Statut
Membre
Dernière intervention
5 mai 2010

J'ai trouvé un code source que je trouve très simpe pour faire un hook du clavier :
http://www.cppfrance.com/codes/KEYLOGGER-HOOK-CLAVIER-SANS-DLL_39864.aspx

Mais j'ai heurté un autre problème, je voudrait écrire "bonne année" à l'appui de la touche N. Je détecte l'appui avec le code source plus haut (merci à tOnyh2) et j'"injecte" des lettres comme cela :
keybd_event('N',0,0,0);
keybd_event('N',0,KEYEVENTF_KEYUP,0);
Ca marche très bien, mais le N injecté est détécté à nouveau par le hook est délenche une récursivité assez violente :s
Y a-t-il un moyen de rajouté des lettres en évitant le Hook ? Ou alors de désactiver le Hook temporairement ?
Merci de vos réponses !