2011-07-22 13 views
0

コンソールアプリケーション(oclHashcat-lite32)はC#win32アプリケーションから制御しようとしていますが、これまで私はコードがありませんでした私はコンソールアプリケーションに書き込むことができません。私は任意のコマンド(例えば、基本プロセスを終了させる "q")を書きたいが、私のコードはコンソールアプリケーションの入力を書いていないようだ。ここでは、コードは次のようになります。は、Win32アプリケーションからコンソールアプリケーションに書き込むことができません

StreamWriter processStreamWriter = OCLProcess.StandardInput; 
processStreamWriter.Write("q"); 
processStreamWriter.Close(); 

私も

processStreamWriter.WriteLine("q"); 

代わりの

processStreamWriter.Write("q"); 

を使用してみました。しかし、それは動作しませんでした。なにか提案を?あなたはGUIアプリなどのWin32アプリケーションをビルドする場合

+0

したがって、 'OCLProcess'とは何ですか? –

+0

十分な情報がありません...プロセスを開始しましたか?はいの場合、どのように正確に(ソースコード)ですか? – Yahia

答えて

0

IIRCは、標準ストリームは、何にもアップリンクされていない - StandardInputはあなたに任意の入力を与えることはありません、とStandardOutputは離れて出力をスローします。

これはクイックフィックス(Cで - 塩のピンチを取るので)、私は、プロジェクトファイルのオプションを使用してコンソールアプリケーションとしてGUIアプリケーションを構築すると考えていました。コンソールアプリケーションはGUIを含むすべての通常のWin32 APIを使用することができるため、GUIスタイルのインターフェイスを提供することができます。

あなたが本当にあなたのGUIアプリ(あなたの子供のコンソールアプリケーションのための標準入力/などと同じではない)の標準入力/出力へのI/Oを使用する場合に限りしかし、あなたがそれを必要としません。新しく開始されたプロセスの標準入力、標準出力、標準エラーストリームのストリームハンドルを提供するプロセスを開始する方法があるので、そのプロセスが標準入力などとして受け取る出力を送信することができます。 http://msdn.microsoft.com/en-us/library/ms682499%28v=vs.85%29.aspx

なお、このリンクには、GetStdHandle(STD_OUTPUT_HANDLE)などの呼び出しが使用されていることも示されています。

Cの構文には申し訳ありません - 私はC#への翻訳が簡単で直接的であることを願っています。

関連する問題