- 締切済み
パイプ処理について
お世話になっております。 コンソールをパイプ処理を通じて制御するWin32アプリケーションプログラムを作成しています。 パイプを作成して、コマンドプロンプトを起動、 netcap(Windowsのサポートツールです)の起動成功までは出来ました。 問題なのは、 このnetcapを終了させるためにはスペースキーを押さなければならないことです。 スペースキーを押さないと正しくログが作成されないみたいなのですが、 どのようにすればスペースキーが押されたこと子プロセスが認識できるのでしょうか? keybd_event()を使用してもうまく受け取ってくれませんでした。 よろしくお願いします。 【環境】 WinXP Pro SP1 VC++6.0
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.2
>netcapを終了させるにはスペースキーを押さなければ >ならないみたいで、やりたいこととしては子プロセスに >スペースキーが押されたことを通知したいのです。 うーん、そうですか。 となると、該当のスレッドを検索し、そのスレッドにWM_KEYDOWN、WM_KEYUPのメッセージをPostMessageで ポストすることでスペースを送るしかないかもしれませんねえ。 やったことないんでサンプルとかは出せませんが。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
回答No.1
標準出力だけではなく、標準入力の分もパイプを作成してください。 で、" "を送ってあげてください。
お礼
ご回答ありがとうございます。 標準出力および標準入力のパイプは作成しています。 " "を送る方法では終了しませんでした。 netcapを終了させるにはスペースキーを押さなければならないみたいで、やりたいこととしては子プロセスにスペースキーが押されたことを通知したいのです。