脚本AutoIT从文件中读取用户名和密码

时间:2013-07-08 18:00:08

标签: google-app-engine autoit

我正在编写AutoIT脚本来从文件中读取用户名和密码,以减少部署,因为否则我必须为每个部署提供用户名和密码。我是AutoIT的新手,我只是RTFM,以下是我得到的,因为我是新手,我确信你可以找到我做错的东西,但以下是为我做的工作以前比这个问题更好的方式:

Local $sLauncherPath = "C:\Program Files (x86)\Google\google_appengine\launcher\GoogleAppEngineLauncher.exe"

Local $iPid = Run($sLauncherPath)

Local $hWin
While ProcessExists($iPid)
    $hWin = WinWait("Deploy Application to Google", "", 1)
    Local $file = FileOpen("C:\Program Files (x86)\Google\google_appengine\launcher\settings.dat", 0)

    Local $line = FileReadLine($file, 1)
    Local $line2 = FileReadLine($file, 2)

    If $hWin And WinGetProcess($hWin) = $iPid Then
        ControlSetText($hWin, "", "Edit1", $line)
        ControlSetText($hWin, "", "Edit2", $line2)

        ControlClick($hWin, "", "Button2")

        WinWaitClose($hWin)
    EndIf
WEnd

这似乎对我有用,你能否提出改进建议,因为这只是我的第二个AutoIT项目?

1 个答案:

答案 0 :(得分:2)

不是一个真正的问题,但这里是您正在寻找的答案:

  • 文件打开和读取不必在循环内部,因此应该在外面...
  • ...特别是因为您没有关闭文件(请参阅FileClose函数)...
  • 在此基础上我没有settings.dat我猜它是你创建的文件。应该检查是否存在错误。
  • 作为一般规则,用户配置文件属于用户目录,而不是程序文件。如果要将程序存储在Program Files中,请查看使用%AppData%或甚至是注册表。
  • 对于配置文件,.ini内置了AutoIt支持,当您有大量设置时,人们可以更轻松地进行编辑。
  • 当您实际按顺序读取它们时,使用FileReadLine并给出行号是非常低效的(它将打开文件,转到开头,并计算换行符)。对于这么小的代码来说并不是真正的问题,但如果没有最后一个参数,你会更好。

最后拼写为AutoIt,小写't':P