OVH Cloud OVH Cloud

Remplacer Sendkeys par Sendmessage

3 réponses
Avatar
teddy
Bonjour à tous,
Je commande la fenêtre d'une application externe comme suit:
SendKeys "{LEFT}", True
SendKeys "{LEFT}", True
SendKeys " ", True
SendKeys "{TAB}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{TAB}", True
SendKeys "{ENTER}", True

si je remplace les SendKeys par une API Sendmessage :

avec s numéro de Handle que je récupère avec l'API FindWindow qui me
retourne bien une valeur exacte (vérifiée en listant tous les handles des
fenêtres).

Call SendMessage(s, WM_IME_KEYDOWN, &H25, 0) ' Send Left
Call SendMessage(s, WM_IME_KEYDOWN, &H25, 0) ' Send Left
Call SendMessage(s, WM_IME_KEYDOWN, &H20, 0) ' Send Space
Call SendMessage(s, WM_IME_KEYDOWN, &H9, 0) ' Send Tab
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H9, 0) ' Send Tab
Call SendMessage(s, WM_IME_KEYDOWN, &HD, 0) ' Send ENTER

L'API SendMessage est bien déclarée. Pas d'erreur VB6 mais ça ne fonctionne
pas.
Sauriez-vous ce qu'il manque ?
Merci d'avance pour vos suggestions.
Teddy

3 réponses

Avatar
X
Bonjour,

Pourquoi, SendKey ça ne fonctionne pas ???

--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"teddy" a écrit dans le message de news:

Bonjour à tous,
Je commande la fenêtre d'une application externe comme suit:
SendKeys "{LEFT}", True
SendKeys "{LEFT}", True
SendKeys " ", True
SendKeys "{TAB}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{TAB}", True
SendKeys "{ENTER}", True

si je remplace les SendKeys par une API Sendmessage :

avec s numéro de Handle que je récupère avec l'API FindWindow qui me
retourne bien une valeur exacte (vérifiée en listant tous les handles des
fenêtres).

Call SendMessage(s, WM_IME_KEYDOWN, &H25, 0) ' Send Left
Call SendMessage(s, WM_IME_KEYDOWN, &H25, 0) ' Send Left
Call SendMessage(s, WM_IME_KEYDOWN, &H20, 0) ' Send Space
Call SendMessage(s, WM_IME_KEYDOWN, &H9, 0) ' Send Tab
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H9, 0) ' Send Tab
Call SendMessage(s, WM_IME_KEYDOWN, &HD, 0) ' Send ENTER

L'API SendMessage est bien déclarée. Pas d'erreur VB6 mais ça ne
fonctionne
pas.
Sauriez-vous ce qu'il manque ?
Merci d'avance pour vos suggestions.
Teddy



Avatar
Fred
dans : news:,
teddy écrivait :

Bonjour à tous,



Bonsoir,

L'API SendMessage est bien déclarée. Pas d'erreur VB6 mais ça ne
fonctionne pas.
Sauriez-vous ce qu'il manque ?



Pas d'idée précise mais il me semblerait logique d'envoyer aussi des
KEYUP.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
teddy
Merci.


"teddy" wrote:

Bonjour à tous,
Je commande la fenêtre d'une application externe comme suit:
SendKeys "{LEFT}", True
SendKeys "{LEFT}", True
SendKeys " ", True
SendKeys "{TAB}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{TAB}", True
SendKeys "{ENTER}", True

si je remplace les SendKeys par une API Sendmessage :

avec s numéro de Handle que je récupère avec l'API FindWindow qui me
retourne bien une valeur exacte (vérifiée en listant tous les handles des
fenêtres).

Call SendMessage(s, WM_IME_KEYDOWN, &H25, 0) ' Send Left
Call SendMessage(s, WM_IME_KEYDOWN, &H25, 0) ' Send Left
Call SendMessage(s, WM_IME_KEYDOWN, &H20, 0) ' Send Space
Call SendMessage(s, WM_IME_KEYDOWN, &H9, 0) ' Send Tab
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H28, 0) ' Send Down
Call SendMessage(s, WM_IME_KEYDOWN, &H9, 0) ' Send Tab
Call SendMessage(s, WM_IME_KEYDOWN, &HD, 0) ' Send ENTER

L'API SendMessage est bien déclarée. Pas d'erreur VB6 mais ça ne fonctionne
pas.
Sauriez-vous ce qu'il manque ?
Merci d'avance pour vos suggestions.
Teddy