質問

私はC#でprogramaticalyプロセスを実行したいです。 process.startと私はそれを行うことができます。しかし、プロセスが間にいくつかのユーザーの入力を要求したときにどのように私は、ユーザーをprommtことができ、入力を提供した後、再び継続します。

役に立ちましたか?

解決

Process.StandardInputする

ただ、書き込み。

他のヒント

あなたはOutputDataReceivedイベントにイベントハンドラを追加することができます。 プロセスがリダイレクトされた出力ストリームに、いくつかのデータを書き込みするたびにこれが呼び出されます。

private StreamWriter m_Writer;

public void RunProcess(string filename, string arguments)
{
    ProcessStartInfo psi = new ProcessStartInfo();
    psi.FileName = filename;
    psi.Arguments = arguments;
    psi.RedirectStandardInput = true;
    psi.RedirectStandardOutput = true;
    psi.UseShellExecute = false;

    Process process = Process.Start(psi);
    m_Writer = process.StandardInput;
    process.EnableRaisingEvents = true;
    process.OutputDataReceived += new DataReceivedEventHandler(OnOutputDataReceived);
    process.BeginOutputReadLine();
}

protected void OnOutputDataReceived(object sender, DataReceivedEventArgs e)
{
    // Data Received From Application Here
    // The data is in e.Data
    // You can prompt the user and write any response to m_Writer to send
    // The text back to the appication
}

また、あなたのプロセスが終了するかどうかを検出するProcess.Exitedイベントもあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top