API SOUCIS [Résolu]

Signaler
Messages postés
104
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
29 mai 2011
-
Messages postés
104
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
29 mai 2011
-
Salut,
J'avais pour habitude de controler un de mes programmes avec l'api POSTMESSAGE
pour simuler l'utilisation du clavier mais seulement voila aprés une mise à jour du soft cet API ne fonctionne plus.maintenant j'ai pus constater que :

aa=prog
Call SendMessageByNum(aa, WM_KEYDOWN, vbKeyDown, 0&)
Call SendMessageByNum(aa, WM_KEYUP, vbKeyDown, 0&)

fonctionne , le seul hic c'est que ca marche une fois sur deux voir au ralentis.
Auriez vous une solution a ce probleme ou bien un autre api ? apparament ce soft prend enormement en capacité cpu et c'est peut etre la cause de mon soucis.
Par avance merci

7 réponses

Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
DoEvents  ??

Bonjour chez vous !
Messages postés
104
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
29 mai 2011

Merci pour votre réponse, j'ai trouvé GetInputState et ca marche impec :
Private Declare Function GetInputState Lib "user32" () As Long

For i = 1 To 2000

If GetInputState Then DoEvents
Call PostMessage(aa, WM_KEYDOWN, vbKeyDown, 0&) 'DOWN
Call PostMessage(aa, WM_KEYUP, vbKeyDown, 0&)
Next i
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
Salut,

C'est quoi ce 2000 ? Et plus généralement, c'est quoi cette boucle !!!

Utilise l'API keybd_event plutôt que postmessage pour la simulation des touches du clavier !
______________________________________
DarK Sidious
Messages postés
104
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
29 mai 2011

Merci DARKSIDIOUS
ce code proviens d'un compteur bref mon code donne ca :
aa=prog
Call SendMessageByNum(aa, WM_KEYDOWN, vbKeyDown, 0&)
Call SendMessageByNum(aa, WM_KEYUP, vbKeyDown, 0&)

avec keybd_event ca me donne quoi ? car j'ai fait quelques test et ca me donne une erreur OVERFLOW
Messages postés
104
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
29 mai 2011

Je revien a la charge avec mon code:
aa= programme
Call SendMessageByNum(aa, WM_KEYDOWN, vbKeyDown, 0&) 'DOWN
Call SendMessageByNum(aa, WM_KEYUP, vbKeyDown, 0&)

Voila comme annoncé sur mon premier post auparavant j'utilisé POSTMESSAGE pour la manip d'un programme depuis une mise a jours de ce soft cet API ne marche plus.A ma trés grande surprise SendMessageByNum fonctionne mais au ralentis ou une fois sur deux, Une chose étrange que je viens de constater est que au moment de l'envoye du SendMessageByNum si je click n'importe ou ailleur du prog que je manipule l'envois de touche ce fait de plus en plus réactif donc plus éfficace . POuvez vous m'expliquer cela svp ?
Messages postés
104
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
29 mai 2011

Je continu avec mon histoire donc keybdevent ne marche pas avec mon aplis par contre si je fait le code suivant ca ne marche pas :

Call SendMessageByNum(aa, WM_KEYDOWN, vbKeyDown, 0)
Call SendMessageByNum(aa, WM_KEYUP, vbKeyDown, 0)

Si maintenant je fait uniquement ca ca marche impec en plus tres reactif mais l'action est repetitif :

Call SendMessageByNum(aa, WM_KEYDOWN, vbKeyDown, 0)

Si je fait ceci:

Call SendMessageByNum(aa, WM_KEYDOWN, vbKeyDown, 0)
pause 0#
Call SendMessageByNum(aa, WM_KEYUP, vbKeyDown, 0)

ca marche mais le soucis c'est au ralentis, donc si vous avez une solution pour moi et me donner votre avis sur ce soucis, n'hésitez pas.
Cordialement
Messages postés
104
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
29 mai 2011

Bah oué tu avais raison:) merci beaucoup .
Call SendMessageByNum(aa, WM_KEYDOWN, vbKeyDown, 0&): DoEvents
Call SendMessageByNum(aa, WM_KEYUP, vbKeyDown, 0&)