CLIプログラムのフロントエンドGUIをeac3to.exeの名前で設計しようとしています。問題は、このプログラムがすべての出力をcmdウィンドウに送信することです。これは、私がGUIウィンドウにこの出力をたくさん集める必要があるので、私にはトラブルの終わりを与えません。これは簡単に聞こえますが、私はAutoItの限界を見つけたのかどうか疑問に思っています。外部CLIプログラムのAutoItスクリプティング - eac3to.exe
DirなどのWindows内部コマンドでRun()関数を使用して、AutoIt StdoutRead()
関数を使用して変数に出力を取得できますが、外部プログラムからの出力を取得できません。eac3to.exe
- それは私が何をしてもうまくいかないようです!テスト目的のために、私はGUIウィンドウに出力する必要はありません。ConsoleWrite()
で印刷するだけで十分ですが、これを変数に読み込むことができたことが証明されています。ですから、この段階で私がしなければならないのは、外部のCLIプログラムによってcmdウィンドウに出力されたテキスト(通常は約10行)を変数に取り込むことです。私がこれを行うことができれば、残りはずっと簡単になるでしょう。これは私がしようとしているものですが、それは決して働かない:
Global $iPID = Run("C:\VIDEO_EDITING\eac3to\eac3to.exe","", @SW_SHOW)
Global $ScreenOutput = StdoutRead($iPID)
ConsoleWrite($ScreenOutput & @CRLF)
を私はconsolWrite()
から得るすべては空白行で、このスクリプトを実行した後 - eac3to.exe
を実行した結果として出力されたではないテキストデータ(ランニング引数なしのeac3toは、すべてのコマンドラインオプションに関連するヘルプテキストの画面を表示しています)、それは私が変数の中に入れようとしているので、後でプログラムで使うことができます。
[関連](https://stackoverflow.com/a/27663324/4157124)。 – user4157124