外部アプリ(コマンドプロンプト)の制御
こんにちは。プログラミング初心者で申し訳ないのですが、調べてみてもどうしても分からない問題があり、ご質問させて頂きました。お手数をおかけしますがご回答頂ければ幸いです。
windowsアプリケーションにて外部のアプリを呼び出し、それを操作しようとした時に、私のような素人が思いつく方法としては、keybd_eventAPIなどでキーを送る、とかWM_LBUTTONDOWNなどのウィンドウメッセージを送る、くらいしか思いつかないのですが、それ以外に外部操作の方法はあるのでしょうか?
例えば、今私が作ろうとしているのは独自アプリよりコマンドプロンプトを呼び出し、事前に指定したいくつかのコマンドを実行する、といったものなのですが、CreateProcessにて起動し、コマンドプロンプトのハンドルを得たところまでは良かったのですが、そのハンドルを利用してどのようにコマンドを送れば良いのかがどうしても分かりませんでした。
「cd ../」というコマンドを送りたい場合、
Keybd_event(Byte('c'),0,0,0);
Keybd_event(Byte('c'),0,KEYEVENTF_KEYUP,0);
Keybd_event(Byte('d'),0,0,0);
Keybd_event(Byte('d'),0,KEYEVENTF_KEYUP,0);
Keybd_event(Byte(' '),0,0,0);
Keybd_event(Byte(' '),0,KEYEVENTF_KEYUP,0);
Keybd_event(Byte('.'),0,0,0);
Keybd_event(Byte('.'),0,KEYEVENTF_KEYUP,0);
Keybd_event(Byte('.'),0,0,0);
Keybd_event(Byte('.'),0,KEYEVENTF_KEYUP,0);
Keybd_event(Byte('/'),0,0,0);
Keybd_event(Byte('/'),0,KEYEVENTF_KEYUP,0);
のようなやり方しか思いつかないのですが、他に良い方法はございませんでしょうか?
宜しければご指導して頂けますよう宜しくお願い致します。
お礼
回答ありがとうございます。 .NET FrameworksのSystem.Windows.Forms.SendKeysを使えばできる「かもしれない」と聞いたのですが.NET開発環境が無いので検証できません。 今月末には検証できるようになるのでそのときに結果を書いて締め切る予定です。
補足
.NET FrameWorksを使ってもだめでした。 あきらめてキーボード改造します。