1

小さなコマンドラインベースのアプリケーションを使用してリモート制御できる顕微鏡ソフトウェアを使用しています。このアプリケーションをより効率的に使用するために、C# を使用して独自のソフトウェアを作成したいと考えています。

私はすでにこれを使用してメインソフトウェアに接続することができました:

public partial class Form1 : Form
{

    Process receiver = new Process
    {
        StartInfo = new ProcessStartInfo
        {
            FileName = "WSxMrc.exe",
            Arguments = "-m recv -a 127.0.0.1 -p 9602",
            UseShellExecute = false,
            RedirectStandardOutput = true,
            CreateNoWindow = true
        }
    };

    private void button1_Click(object sender, EventArgs e)
    {
        bConnect.Enabled = false;
        bDconnect.Enabled = true;

        receiver.Start();     
    }...

cmd でアプリケーションを使用して、画像が取得されるたびに情報を受け取るようになりました。これらの受け取ったステータスを使用して、何が起こっても対処したいと考えています。たとえば、画像がキャプチャされた後にスキャン領域を変更します。

着信ステータスを記録するには、ある種のイベントを発生させる必要があると確信しており、それが今行き詰まっています。新しいメッセージが受信者プロセスに送信されるたびに認識するイベントを作成する方法がわかりません。

4

1 に答える 1

0

リダイレクトされた出力を処理するには、OutputDataRecieved イベントを使用する必要があります。

これらの行を receiveer.Start() の後に追加します

receiver.OutputDataReceived += receiver_OutputDataReceived;
receiver.BeginOutputReadLine();

次に、イベントハンドラーを追加します

void reciever_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
    ...
}

詳細はこちら

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.outputdatareceived.aspx

于 2013-08-01T14:52:37.997 に答える