2016-05-28 1 views
1

J'ai donc un client de jeu avec 2 champs de saisie: id pass et 1 bouton: login. Mes informations de connexion sont: $id=1234 et $pass=a_bCd. J'utilise des scripts AutoIt pour automatiser le processus de connexion (mon script entrées automatiquement l'identifiant et passe dans les champs de connexion) et ma fonction AutoLogin() ressemble à:Les commandes AutoIT send() ne fonctionnent pas correctement

send($id + "{tab}") 
Sleep(10) 
send($pass + "{enter}") 

Parfois, il fonctionne très bien, mais parfois mes introduit script 1234a- ou 1234a_ dans le champ ID et le reste des caractères dans le champ de passe. J'ai essayé beaucoup de solutions comme controlsend("Game","","","1234{tab}a_bCd{enter}"), ou en changeant sleep() les valeurs, etc. mais l'entrée tourne toujours mal parfois. Figuré le délai d'envoi ou de sommeil aurait le problème, ne savent toujours pas quoi faire.

L'insertion manuelle de l'identifiant et du passage fonctionne correctement. Quelle serait une bonne résolution de ce problème? Merci

Répondre

0

2 Solutions:

Vous ajoutez des chaînes avec &:

send($id & "{tab}") 
send($pass & "{enter}") 

Si cette séparation juste ne fonctionne pas:

send($id) 
send("{tab}") 
send($pass) 
send("{enter}") 

Et vous n'avez pas besoin que le sommeil

0

J'ai eu les mêmes problèmes avec send. This post sur autoitscript.com peut vous aider à WinAPI_Keybd_Event() (documentation here):

#include <WinAPISys.au3> 
_WinAPI_Keybd_Event(0x11, 0) # Push CTRL down 
_WinAPI_Keybd_Event(0x11, 2) # Lift CTRL up again 

Cela m'a aidé avec mes problèmes. REMARQUE: Parfois, lorsque votre script se brise en raison d'une erreur, il se peut que l'une des touches de votre clavier soit toujours enfoncée (c'est-à-dire enfoncée mais jamais levée). J'utilise le clavier à l'écran intégré dans Windows pour ces moments ...