AutoIT send()命令无法正常工作

时间:2016-05-28 15:26:11

标签: scripting automation autoit game-development

所以我有一个带有2个输入字段的游戏客户端:id pass和1个按钮:login。 我的登录凭据为:$id=1234$pass=a_bCd。 我正在使用AutoIT脚本来自动化登录过程(我的脚本自动输入id并传入登录字段),我的AutoLogin()函数如下所示:

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

有时它工作正常,但有时我的脚本会在ID字段中引入1234a-1234a_,并在pass字段中引入其余字符。我尝试了许多解决方案,例如controlsend("Game","","","1234{tab}a_bCd{enter}")或更改sleep()值等,但输入有时仍会出错。想到发送延迟或睡眠会有问题,仍然不知道该怎么办。

手动插入id和pass正常工作。什么能很好地解决这个问题?谢谢

2 个答案:

答案 0 :(得分:0)

2解决方案:

使用&:

添加字符串
send($id & "{tab}")
send($pass & "{enter}")

如果这不起作用,只需将其分开:

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

你不需要那个睡眠

答案 1 :(得分:0)

send我遇到了同样的麻烦。 autoitscript.com上的This post可以帮助您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

这有助于解决我的问题。

注意:有时,当您的脚本因错误而中断时,可能会发生键盘上的某个键仍被按下(即按下但从未抬起)。我使用Windows中集成的屏幕键盘来实现这些时刻......