- ベストアンサー
コマンドプロンプト上で動作するプログラムを別プログラムから操作する方法
- コマンドプロンプト上で動作するプログラムを別のプログラムから操作する方法について考えています。
- 数十個や数百個の数字を自動的に入力していくプログラムが必要な場合、VBAや他のプログラミング言語で可能かどうかを知りたいです。
- 初心者の場合でも、VBAなどでFor文を使用して数字の入力を繰り返す方法が考えられますが、具体的な手法についても教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAでもできると思いますが、コマンドラインのプログラムであれば、普通はバッチファイルでやるような話だと思います。 (そのプログラムのパラメータがどのようになっているかによりますけど) 例えば、仕事で使うようなコマンドラインのプログラムは対話式のインターフェースよりも「パラメータ(引数)を与えて処理する」ものが多いと思います。 対話式であっても、パラメータ処理も可能である場合が殆どです。 ご質問の例にある、test.exeであれば test.exe 1 test.exe 2 test.exe 3 のようなコマンドの羅列をあらかじめ用意してバッチで一気に流す事が可能です。 FOR文を使えば、パラメータだけを他のテキストに書いておき、その行数分、test.exeを実行するような事も可能です。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
使ったことはありませんが、自動操作のソフトが色々あります。 http://www.vector.co.jp/vpack/filearea/win/util/operate/ 標準のツールでやるとすると、VBScriptやVBAなどのSendkeysコマンドで、キーをコマンドプロンプトウィンドウに送るくらいです。 何がウィンドウに出ているかは検知できませんので、適当に時間待ちを入れながらキーを送ることになります。
- Yune-Kichi
- ベストアンサー率74% (465/626)
本気でやると,非常に面倒くさいです。 参照するのは MSDN: Creating a Child Process with Redirected Input and Output http://msdn.microsoft.com/en-us/library/ms682499.aspx あたりでしょうか。 ・入力は標準入力からである (強制的にキーボード入力にしていない) ・出力は標準出力である (強制的にコンソール出力にしていない) を満たすのであれば,コマンドプロセッサのリダイレクト機能を使ってしまった方がよいでしょう。 test.exe < input.txt > output.txt のようなことをすれば,プロセスが終了した時点で「出力」がoutput.txtに書き出されます。