Comment simuler l'appui sur une touche du clavier ?

Comment simuler l'appui sur une touche du clavier ? - C++ - Programmation

Marsh Posté le 30-12-2004 à 02:06:30    

Salut à tous !
 
J'essaie de simuler l'appui sur une touche du clavier via un programme "home made".
 
J'utilise les fonctions suivantes :
 
SendMessage(HANDLE Handle, WM_KEYDOWN, wParam, lParam);
SendMessage(HANDLE Handle, WM_KEYUP, wParam, lParam);
 
D'après ce que j'ai compris, wParam est le code de la touche du clavier que l'on veut simuler, et lParam est un entier sur 32 bits qui correspond à toute une floppée d'options :
 
Value Description  
0–15 Specifies the repeat count for the current message. The value is the number of times the keystroke is auto-repeated as a result of the user holding down the key. If the keystroke is held long enough, multiple messages are sent. However, the repeat count is not cumulative.  
16–23 Specifies the scan code. The value depends on the original equipment manufacturer (OEM).  
24 Specifies whether the key is an extended key, such as the right-hand alt and ctrl keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.  
25–28 Reserved; do not use.  
29 Specifies the context code. The value is always 0 for a WM_KEYDOWN message.  
30 Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is 0 if the key is up.  
31 Specifies the transition state. The value is always 0 for a WM_KEYDOWN message.

 
Seulement voilà, si je poste vous vous doutez de la question que je vais vous poser : cela ne fonctionne absolument pas  :cry: !
 
J'arrive très facilement à récupérer le handle d'un notepad ouvert et à lui envoyer toutes sortes de messages (WM_CLOSE par exemple, c'est le plus facile à constater  :) ), par contre impossible de simuler l'appui par exemple de la touche M (code 77)
 
Quelqu'un aurait-il une explication ou une solution à me proposer ?
 
Merci d'avance !


Message édité par mikegyver le 30-12-2004 à 02:07:25

---------------
...m'enfin !!!
Reply

Marsh Posté le 30-12-2004 à 02:06:30   

Reply

Marsh Posté le 30-12-2004 à 14:41:31    

UP !!!
 
Toujours pas trouvé la soluce mais ça avance...
 
Toutefois si l'un de vous avait un 'tit coup de pouce à ce sujet, je suis preneur :) !


---------------
...m'enfin !!!
Reply

Marsh Posté le 30-12-2004 à 14:53:40    

cherchez sur keybd_event dans le forum...

Reply

Marsh Posté le 30-12-2004 à 19:19:50    

DocMaboul a écrit :

cherchez sur keybd_event dans le forum...


 
Excellent ! C'est ce que je recherchais !
 
Merci beaucoup !


---------------
...m'enfin !!!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed