Pregunta

Quiero ejecutar un proceso programaticaly en C #. con Process.Start puedo hacerlo. pero ¿cómo puedo prommt usuario cuando el proceso pide un poco de la entrada del usuario en el medio y continuar de nuevo después de proporcionar la entrada.

¿Fue útil?

Solución

Sólo tiene que escribir a Process.StandardInput .

Otros consejos

Aquí está una buen artículo sobre la ejecución de un proceso de forma sincrónica y asíncrona de c #.

Se puede agregar un controlador de eventos para el evento OutputDataReceived. Esto se llama cada vez que el proceso escribe algunos datos para su flujo de salida redirigida.

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
}

Además también hay un evento Process.Exited para detectar si sus salidas de proceso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top