Simulation appui de 3 secondes sur flèches directionnelles

cs_kraftork Messages postés 10 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 29 novembre 2010 - 18 nov. 2010 à 10:19
cs_kraftork Messages postés 10 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 29 novembre 2010 - 29 nov. 2010 à 13:30
Salut à toutes et à tous.
Bon, comme le titre l'indique, je cherche à simuler un appui de 3 secondes sur les flèches directionnelles.
J'ai bien essayé avec l'api keybd_event mais cette api ne fait qu'une pression de touche

Exemple : Call keybd_event(37, 0, 0, 0)

J'ai également essayé d'inclure cette ligne de commande dans une boucle do...loop mais :
1 - le programme freeze
2 - pas facile de faire correspondre un nombre de boucles avec un temps (3 secondes en l'occurrence).

Quelqu'un a t'il une idée ?
Mille merci, je galère à mort :D
Kraft

8 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 nov. 2010 à 14:51
quel est le but de l'opération ? quel type de fenetre souhaites tu piloter ?
est-ce une fenetre de ton application ?


relis ta doc de keybd_event... permet de faire presser ou relacher la touche, comme tu le souhaite.



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_kraftork Messages postés 10 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 29 novembre 2010
18 nov. 2010 à 23:07
Bonsoir Renfield. Autant pour moi, je n'ai pas précisé ce point.
Effectivement, c'est pour effectuer des déplacements dans un jeu, donc, dans une autre fenêtre.
J'avais omis ce point qui est loin d'être négligeable. Mille merci de l'avoir souligné.
Bonne soirée.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 nov. 2010 à 09:47
Quel type de jeu est-ce ?
Flash, simple page web, DirectX (entrées via DirectInput)

est-ce que le jeu réagit a tes actions VB ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_kraftork Messages postés 10 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 29 novembre 2010
19 nov. 2010 à 10:29
Le jeu est un MMO qui est relativement vieux. C'est de la 3D isométrique donc, du directx.
Quoiqu'il en soit, le jeu réagit bien lorsque keybd_event est envoyé (exemple : simulation des touches CTRL+SHIFT+A fonctionne très bien).
Lorsque j'envoie le keyb_event pour les flèches directionnelles, cela fonctionne mais juste 1 fois or je souhaiterais que la touche droite soit pressée pendant 3 secondes, puis celle du bas pendant 2 secondes, etc... histoire de créer un déplacement automatique du personnage :)
Tschu ;)
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 nov. 2010 à 10:46
ok...

comme je te l'ai dit, relis ta doc msdn...

keybd_event a cet avantage de permettre de dire si tu demande l'appui ou le relachement de la touche en question...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_kraftork Messages postés 10 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 29 novembre 2010
28 nov. 2010 à 23:28
Salut Renfield.
Bon, j'ai du nouveau. En me creusant la tête, j'ai trouvé réponse à ma question MAIS...
La simulation des touches directionnelles fonctionne dans les programmes (essai avec openoffice calc), mais pas dans le jeu qui est basé sous directX.

Ce qui est d'autant plus étonnant, c'est que le jeu répond à une simulation de certaines touches mais pas aux touches directionnelles (exemple : ça fonctionne pour une combinaison CTRL+SHIFT+W mas pas pour toudches droite, gauche, haut et bas).

Une soluce à m'apporter ?
Ciao
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 nov. 2010 à 09:36
"3D isométrique donc, du directx."

j'ignore d'ou tu tires cette relation de cause a effet...

quoi qu'il en soit, DirectX (en fait, DirectInput, s'il est utilisé pour gérer les entrées) ne passe pas par windows, mais lis l'êtat du matériel directement...

Ctrl Shift W.... un raccourci d'un menu ? si oui, cette partie est gérée par Windows, donc oui, cela fonctionnera...

quel est le code que tu testes, pour ton VK_LEFT ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_kraftork Messages postés 10 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 29 novembre 2010
29 nov. 2010 à 13:30
Pour l'instant, je ne teste aucun code car je me lance dans la compréhension de directinput.

J'essaie de trouver quelque chose là dessus mais je trouve essentiellement des exemples en .net ou C++...

Je continue de chercher...
http://www.ex-designz.net/apidetail.asp?api_id=500
et
http://www.developpez.net/forums/d260923/autres-langages/general-visual-basic-6-vbscript/vb-6-anterieur/vb6-simuler-clavier-sendkeys-keybd_event/

Me reste plus qu'à comprendre...
0
Rejoignez-nous