1

ファイルからユーザー名とパスワードを読み取るように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

これは私の2番目のAutoITプロジェクトにすぎないので、改善の提案をしていただけますか?

4

1 に答える 1

2

本当の質問ではありませんが、探している答えは次のとおりです。

  • ファイルのオープンと読み取りはループの内側にある必要はないため、ループの外側にある必要があります...
  • ...特に、ファイルを閉じていないため(FileClose関数を参照)...
  • 私が持っていないことに基づいてsettings.dat、それはあなたが作成したファイルであると推測しています。存在するかどうかのエラーチェックが必要です。
  • 原則として、ユーザー設定ファイルは Program Files ではなくユーザー ディレクトリに属します。プログラムを Program Files に保存する場合は、%AppData% またはレジストリの使用を検討してください。
  • 構成ファイルの場合、.iniAutoIt サポートが組み込まれており、多くの設定がある場合に人間が編集しやすくなっています。
  • 行番号を使用FileReadLineして与えることは、実際にそれらを順番に読み取る場合には非常に非効率的です (ファイルを開き、先頭に移動し、改行をカウントします)。この小さなコードでは実際には問題にはなりませんが、最後の引数がないほうがよいでしょう。

そして最後に、小文字の 't' を付けて AutoIt と綴ります:P

于 2013-07-08T19:44:14.033 に答える