[Delphi] Sendmessage ?

Sendmessage ? [Delphi] - Delphi/Pascal - Programmation

Marsh Posté le 03-08-2007 à 22:08:23    

Bonjour
 
Je voudrais savoir comment simuler l'appuie d'une touche dans une fenêtre dont je connais le handle ??
 
JE m'explique. J'ai fait une appli delphi qui lance une application externe à une certaine heure. Une fois cette appli lancée il faudrait que mon prog delphi lui simule l'appuie de touches clavier :  
CTRL+ESPACE  
 
Quelqu'un sait faire ça ?
 
Merci pour votre aide.

Reply

Marsh Posté le 03-08-2007 à 22:08:23   

Reply

Marsh Posté le 04-08-2007 à 01:11:43    

D'abord un FindWindow() pour trouver le handle de la fenêtre (si tu ne l'as pas déjà), puis 2 messages à envoyer :

Code :
  1. SendMessage(handle, WM_KEYDOWN, VK_CTRL, 1)


puis

Code :
  1. SendMessage(handle, WM_KEYDOWN, VK_SPACE, 1)


Message édité par Harkonnen le 04-08-2007 à 01:12:08
Reply

Marsh Posté le 04-08-2007 à 08:51:53    

Merci pour ta réponse.
 
Alors la constante VK_CTRL n'est pas reconnu !!!
 
Maintenant autre question : si je veut simuler l'appuie sur la touche E par exemple que dois-je mettre ? J'ai vu sur google VK_E mais la aussi cette constante n'est pas reconnu !
 
Merci

Reply

Marsh Posté le 04-08-2007 à 13:00:21    

Je sais pas comment on utilise ces constantes en Delphi, en C elles sont définies dans windows.h. Remplace les par leur valeur :
VK_CTRL = 17
VK_E = 69

Reply

Marsh Posté le 04-08-2007 à 13:34:41    

ok je vais essayer.
 
J'avais pour l'instant éviter le sendmessage en utilisant un script autoit.
Mais bon j'espère y arrivr directement avec le sendmessage.
 
Merci pour ton aide.

Reply

Marsh Posté le 10-08-2007 à 14:32:14    

Elles sont définies dans la unit "Windows" ces constantes. Bon là dedans c'est VK_CONTROL au lieu de VK_CTRL, je sais pas si c'est Harkonnen ou Delphi qui a fait l'erreur :D
Quand au VK_E, c'est juste la valeur du E, donc 'E' ou Ord('E') selon qu'il faille un Char ou un Word.

Reply

Marsh Posté le 10-08-2007 à 15:17:24    

ok merci.

Reply

Marsh Posté le 10-08-2007 à 15:26:05    

Reply

Marsh Posté le 11-08-2007 à 01:44:32    

antp a écrit :

Elles sont définies dans la unit "Windows" ces constantes. Bon là dedans c'est VK_CONTROL au lieu de VK_CTRL, je sais pas si c'est Harkonnen ou Delphi qui a fait l'erreur :D


C'est moi :o
C'est bien VK_CONTROL :jap:

Reply

Sujets relatifs:

Leave a Replay

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