質問
私はC#でprogramaticalyプロセスを実行したいです。 process.startと私はそれを行うことができます。しかし、プロセスが間にいくつかのユーザーの入力を要求したときにどのように私は、ユーザーをprommtことができ、入力を提供した後、再び継続します。
解決
Process.StandardInputするに
ただ、書き込み。
他のヒント
ここから同期および非同期処理を実行することで良い記事には、 C#ます。
あなたは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イベントもあります。
所属していません StackOverflow