• 締切済み

パイプ処理について

お世話になっております。 コンソールをパイプ処理を通じて制御するWin32アプリケーションプログラムを作成しています。 パイプを作成して、コマンドプロンプトを起動、 netcap(Windowsのサポートツールです)の起動成功までは出来ました。 問題なのは、 このnetcapを終了させるためにはスペースキーを押さなければならないことです。 スペースキーを押さないと正しくログが作成されないみたいなのですが、 どのようにすればスペースキーが押されたこと子プロセスが認識できるのでしょうか? keybd_event()を使用してもうまく受け取ってくれませんでした。 よろしくお願いします。 【環境】 WinXP Pro SP1 VC++6.0

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>netcapを終了させるにはスペースキーを押さなければ >ならないみたいで、やりたいこととしては子プロセスに >スペースキーが押されたことを通知したいのです。 うーん、そうですか。 となると、該当のスレッドを検索し、そのスレッドにWM_KEYDOWN、WM_KEYUPのメッセージをPostMessageで ポストすることでスペースを送るしかないかもしれませんねえ。 やったことないんでサンプルとかは出せませんが。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

標準出力だけではなく、標準入力の分もパイプを作成してください。 で、" "を送ってあげてください。

noname#153041
質問者

お礼

ご回答ありがとうございます。 標準出力および標準入力のパイプは作成しています。 " "を送る方法では終了しませんでした。 netcapを終了させるにはスペースキーを押さなければならないみたいで、やりたいこととしては子プロセスにスペースキーが押されたことを通知したいのです。

関連するQ&A