HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 2008
-
12 août 2003 à 14:34
Steph115 -
17 juil. 2004 à 09:43
Salut,
est-il possible (et si oui comment) de faire croire à un programme que quelqu'un tape sur une touche? Un exemple pour fixé les idées : un programme en C lance une application qui attend l'appui sur la touche entée. Je souhaiterai que le programme ayant lancé l'application le face ou du moins lui face croire qu'un utilisateur à appuyer sur entrée....
Merci
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 12 août 2003 à 15:08
Salut,
Soit hWnd le handle de la fenetre ou tu souhaite "faire croire" que l'utilisateur a apuyé sur entrer:
Tu envois un message WM_KEYDOWN a cette fenetre:
SendMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0);
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 12 août 2003 à 16:10
Une petite mesentente! Tu me parle de Handle de la fenetre à qui je veux faire croire que je tape sur une touche... moi je voudrais savoir comment faire si l'application que je lance (par system() ou exec()) n'est pas de moi mais style Word ou Excel (un exemple parmis d'autres)
Merci d'avance et a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 12 août 2003 à 16:29
Salut,
>>est-il possible (et si oui comment) de faire croire à un programme que quelqu'un tape sur une touche?
>>Tu me parle de Handle de la fenetre à qui je veux faire croire que je tape sur une touche...
Tu as changé d'avis ? Tu as plus envie de simuler la pression de la touche entrer ?
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 12 août 2003 à 16:36
Non je n'ai pas changer d'avis. Je reprend : je souhaite lancer une application (un exe dont je ne suis pas l'auteur mais Microsoft) et je souhaiterai à partir du programme que j'ai écrit et qui lance l'appli, lui faire croire qu'un utilisateur à taper sur une touche (la touche enter par exemple).
a+
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 12 août 2003 à 17:17
Moi je pense que ca ne peut pas marcher car WM_KEYDOWN est un message que l'application recoit quand une touche est enfoncée mais on ne peut pas envoyer ce message a une application. Moi aussi je cherche a résoudre ce pb depuis longtemps et j'arrive pas trouver
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 12 août 2003 à 17:20
Dans MSDN, la distinction est bien faite entre ces 2 types de messages:
Message qu'on envoie:
An application sends a WM_SETFONT message to specify the font that a control is to use when drawing text.
Message qu'on recoit:
The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 12 août 2003 à 17:24
Salut,
si tu fais SendMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0);
c'est comme si tu avais apuyé sur ENTRER lorsque la fenetre hWnd avait le focus.
Les messages sont la pour etres recus... ou envoyés.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 12 août 2003 à 18:05
Et tu as essayé de voir si ca marchait?
Moi j'ai essayé vite fiat et j'ai l'impression que ce marche pas, on peut pas envoyer n'importe quel message, si?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 12 août 2003 à 18:34
La seule difference entre ces 2 fonction c'est que PostMessage retourne tout de suite alors que SendMessage attend que le message soit traité avant de retourner.
C'est une mauvaise habitude de ma part d'utiliser SendMessage alors que PostMessage suffit... :)
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 12 août 2003 à 18:42
Comment tu l'a testé ?
Si le traitement du message est long, SendMessage ne retourne pas et donc tu a l'impression que ca ne marche pas.
Moi pour tester j'ai fait une dialogbox qui affiche une messagebox lorsque elle recois un WM_KEYDOWN.
J'ai mis un bouton qui envoie un message WM_KEYDOWN pour simuler l'apuis sur la touche entrée... et ca marche tres bien.
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 13 août 2003 à 08:25
Coucou, j'ai suivit un peu se que vous racontiez et je me demande juste un petit truc. Aussi bien avec PostMessage qu'avec SendMessage, d'ou vous chopper le hWnd de l'appli qui vient d'être lancer??
a+