私は起動して何らかの作業をするコマンドラインアプリケーションを持っています。その間、キーストロークを聞きます(s => show status)。 's'を押す典型的なコマンドプロンプトではなく、<ENTER> - これは、キーが押されるとすぐに反応するタイプで、ステータスが表示されます。ウィンドウレスコマンドラインプロセスへのコマンドの送信(C#アプリケーションから開始)
今、私は、キーストロークを送信して、派手なGUIアプリケーションからコマンドラインアプリケーションを「制御」しようとしています。私はProcess 'StandardInputに書き込むより従来のアプローチを試みましたが、それはまったく効果がないようです。また、実際のプロセスにはウィンドウがありません(CreateNoWindow = trueで開始されています)、ウィンドウにキーストロークを送信するためのWin32 APIを試すことはできません。
他の方法はありますか?
は、あなたが書いた(あるいは、少なくともソースコードへのを持っている)コマンドラインアプリケーション1ですか?もしそうなら、私はGUIとコマンドラインツールの両方が使用する別のライブラリに再利用したいビットをリファクタリングします。 –
Process'StandardInputを使用しているときにストリームを確実にフラッシュしましたか? – jclozano
@JonSkeet:私は、ソースコードの贅沢を持っていた場合ふむ、私は質問をされない:P私はちょうど良く動作するようにアプリケーションを変更したいです。 はええ、私はフラッシュ()コマンドを呼び出すことにより、ストリームをフラッシュしました。助けてくれなかった。 – Iv4n