- 締切済み
プログラムからコマンドプロンプトを操作
はじめまして。質問させていただきます WindowsXP Home Edition SP2 GCC 3.4.5 (MinGW) コマンドプロンプトをサポートするようなソフトをイメージしています。 AllocConsole()の後CreateProcessでcmd.exeの起動まではうまくいっています。 やりたいことは、 ■(1)外部のソフトからコマンドプロンプトに対してコマンドを送りたい 例:自作アプリのボタンを押すと"dir"が送られてファイル一覧が表示される ■(2)外部のソフトのキー入力をそのままコマンドプロンプトに送りたい 例:自作アプリ上でキーボードの[a]を押すとコマンドプロンプト上で「C:\>a(カーソル)」のように入力される ■(3)コマンドプロンプトを直接操作したい 例:コマンドプロンプト上でキーボードから[C][D][ ][.][.][Enter]と押してディレクトリを移動する (1)については名前なしパイプのサンプルを発見しとりあえず解決しています。 (2)についても自作アプリ側に発生したメッセージをそのままSendMessageすることでとりあえず乗り切りました。 (3)はコマンドプロンプトの一般的な使い方です。 しかし、(1)を実現すると、(2)、(3)が共にできなくなってしまいます。(コマンドプロンプトが反応しない) これらを全て同時に実現するか、あるいは切り替えて使用する方法を探しています。 パイプの代わりにWriteConsoleInput,SendInputなども考えましたがキーコードしか送れないようなので、全角のテキスト送信には無理かと思っています。(ESCキーの送信などには使えそうです) よろしくお願いします。 参考にしたサイト: ・http://capsulecorp.studio-web.net/tora12/c/api/Console.html ・http://www.fides.dti.ne.jp/~tokai/vc/vcpipe.html (現在のソースはここのサンプルから標準出力の部分を削除したようなものです)
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- lv4u
- ベストアンサー率27% (1862/6715)
>>これらを全て同時に実現するか、あるいは切り替えて使用する方法を探しています。 キーボードと回線や他のソフトからの入力を同時に処理する場合は、select命令を使うのが一般的です。使い方の例はネットを探すとあると思いますよ。