我想在c#programaticaly运行的过程。 用的Process.Start我能做到这一点。但我怎样才能prommt用户当处理要求在之间的一些用户输入和提供所述输入后,再次继续。

有帮助吗?

解决方案

其他提示

您可以添加一个事件处理程序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