Intercepter une saisi puis la remplacer [Résolu]

Signaler
Messages postés
48
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
27 juillet 2008
-
Messages postés
48
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
27 juillet 2008
-
Bonjour,
Comment fait on pour faire un programme qui intercepte une saisie pour remplacer par une autre ?
Voici un exemple de ce que je voudrai réaliser :
http://glandeclub.free.fr/logiciel/interlligentwordpad.zip

Je voudrai faire pareil mais en interceptant les touche (hook clavier).

Merci pour votre aide
++

9 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Je viens de poster le code source:
http://www.cppfrance.com/code.aspx?ID=43964
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
Je n'ai pas regardé ton lien mais
si c'est pour faire ça dans une application dont tu as le controle (pas de hook clavier), y'a les messages correspondants :
WM_CHAR
WM_KEYDOWN
ect...
dans la window proc, tu récupère le HWND du textBox et tu remplaces ce que tu veux.
Messages postés
48
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
27 juillet 2008

Oui, le lien que j'ai mi c'est comme sa.
Moi je voudrai que ce soit pour toute les touches
Je voudrai de cette sorte réaliser un faut virus qui passe le message en boucle : "Tu t'est fait avoir ;)" (pour l'envoyer a un pote)
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Je viens de tester le prog du lien. Tu peux faire beaucoup mieux avec un hook de type WH_GETMESSAGE. Dans la procédure de hook,  lParam fournit un pointeur sur une structure MSG. Tu récupères le message WM_CHAR dans le membre message et le code de la touche appuyée dans le membre wParam de cette structure.  Tu peux modifier ce code en y mettant ce que tu veux. Pour que le hook fonctionne avec toutes les applications, il faut mettre la fonction de hook dans une DLL externe.
Messages postés
48
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
27 juillet 2008

Il ni a pas moyen d'utiliser cette source pour arriver a mes fin ? :
http://www.cppfrance.com/codes/HOOK-GLOBAL-SANS-DLL_27169.aspx

Je suppose qu'il y a un truc a modifier dans cette fonction :
// Renvoi des messages au sytème pour permettre d'autres hooks
return CallNextHookEx(hHook, nCode, wParam, lParam);

Je vais me renseigner sur MSDN
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Je ne pense pas que ce soit possible avec un hook clavier. Il parait qu'il est interdit  de modifier le code de la touche tapée. Avec un hook WH_GETMESSAGE, il est possible de modifier le code du caratère tapé sans problème.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Je viens de penser à un truc. Dans la procédure de hook clavier, on peut essayer d'utiliser la fonction SendInput() ou keybd_event() pour simuler l'appui sur une touche différente de celle capturée dans le hook. Il faudra faire des tests pour voir ce que ça donnera.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
J'ai fait un petit test et ça marche. Je vais améliorer le code avant de le poster.
.
Messages postés
48
Date d'inscription
jeudi 10 juillet 2003
Statut
Membre
Dernière intervention
27 juillet 2008

Merci c'est exactement se que je cherchais, je vai aller étudier sa !