Simulation des touches du clavier

cs_edd Messages postés 1 Date d'inscription dimanche 3 mars 2002 Statut Membre Dernière intervention 13 mars 2002 - 13 mars 2002 à 22:12
PatriceVB Messages postés 562 Date d'inscription dimanche 16 décembre 2001 Statut Modérateur Dernière intervention 26 décembre 2007 - 20 mars 2002 à 21:40
qqn pourrait-il m'expliquer comment simuler l'effet de l'appui d'une touche du clavier sans l'appuyer (le programme s'exécute comme si l'utilisateur avait pressé la touche).
merci de votre coopération.
[mailto:ed.s@ifrance.com mailto:ed.s@ifrance.com]

5 réponses

PatriceVB Messages postés 562 Date d'inscription dimanche 16 décembre 2001 Statut Modérateur Dernière intervention 26 décembre 2007
14 mars 2002 à 17:47
C simple, il suffit d'utiliser l'instruction SendKeys.
Pour voir sa syntaxe va dans l'aide de vb. cette instruction permet de simuler l'appui d'une touche, comme tu le veux.
@+
Si tu veux un code précis correspondant à ce que tu veux, réponds à ce message.
0
lutinpitchoune Messages postés 10 Date d'inscription jeudi 14 mars 2002 Statut Membre Dernière intervention 1 octobre 2002
15 mars 2002 à 10:24
salut,
Je voudrais utiliser sendkeys pour piloter un programme qui tourne dans une fenêtre dos sous windows. Quand j'essaye avec COMMAND.EXE tout se passe bien, par contre avec mon programme, qui s'appelle LIGNE.EXE, je ne peux rien faire, sauf le lancer avec SHELL. Quand j'envoie des touches, le prompt a un sursaut mais sans effet.

J'ai pas super compris comment préciser où je veux envoyer mes touches (avec COMMAND.EXE ca marche que si je place la souris sur la fenêtre dos).

Peux tu m'aider là dessus, pour diriger l'envoie des touches, et savoir si pour simuler l'appui sur la touche Entrée il y a d'autre instruction que {ENTER} ou {~}, qui pourraient être attendu par mon programme?

Merci d'avance
0
PatriceVB Messages postés 562 Date d'inscription dimanche 16 décembre 2001 Statut Modérateur Dernière intervention 26 décembre 2007
15 mars 2002 à 13:09
Pour envoyer des frappes de touche a une appli, il faut qu'elle ait le focus. Pour mettre le focus dessus, tu peux utiliser l'instruction appactivate.
Ensuite t'as qu'a faire tes simulations.
Pour entrée
sendkeys {enter}
0
lutinpitchoune Messages postés 10 Date d'inscription jeudi 14 mars 2002 Statut Membre Dernière intervention 1 octobre 2002
18 mars 2002 à 14:00
J'ai essayé plusieurs façon pour lui envoyer les instructions mais il ne comprend rien de rien.
Quand j'essaye avec CMD.EXE, ça marche, sauf que j'arrive pas à activer le focus, il faut toujours que je place la souris sur la fenêtre dos, sans pourtant devoir cliquer.

Je vois vraiment pas où est l'erreur. Je te donne le code de la macro que j'utilise, peux tu me dire si je me trompe quelque part?
-------------------------
Sub ExeTS()
' ExeTS Macro

Dim MyAppID
MyAppID = Shell("C:\Verif2002\Prog\ligne.exe", 1)

'Attente d'execution du programme : 2s
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 2
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

AppActivate MyAppID
SendKeys "{enter}", True 'on est dans le programme

MsgBox "le fenetre active s'apelle " & ActiveWindow.Caption 'test de AppActivate

End Sub
-------------------------
Résultats : Si je mets la souris sur la fenêtre dos, au bout des 2 secondes le prompt a un sursaut, mais rien ne se passe. Le programme est pourtant lancer correctement car si j'appuie sur Entrée, ça marche. Enfin dernière chose, le MSgbox me dit que l'application active est mon application excel, que je le fasse avant ou après Sendkeys.

Tu y comprends qqchose???

Lutin Pitchoune pour vous servir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PatriceVB Messages postés 562 Date d'inscription dimanche 16 décembre 2001 Statut Modérateur Dernière intervention 26 décembre 2007
20 mars 2002 à 21:40
alors là, je vois pas
désolé.
0
Rejoignez-nous