Estoy aprendiendo C# en este momento por un poco de diversión y estoy tratando de hacer una aplicación de Windows que tiene un poco de gui para ejecutar algunos comandos de python. Básicamente, estoy tratando de enseñarme las agallas de ejecutar un proceso y enviarle comandos, así como recibir comandos de él.¿Por qué Shellexecute = false rompe esto?
tengo el siguiente código en la actualidad
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "C:/Python31/python.exe";
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
textBox1.Text = output;
Correr python.exe desde un símbolo del sistema da un texto introductorio que me gustaría capturar y enviar a un cuadro de texto en forma de ventanas (textBox1) Básicamente, el objetivo es tener algo que se parece a la consola de python que se ejecuta desde la aplicación de Windows. Cuando no configuro UseShellExecute en falso, aparece una consola y todo funciona bien; sin embargo, cuando establezco UseShellExecute en falso para redirigir la entrada, todo lo que obtengo es que una consola aparece muy rápido y se cierra de nuevo.
¿Qué estoy haciendo mal aquí?
Gracias! Ahora puedo obtenerlo ejecutando un script de Python usando este método (más algunos de los enlaces provistos por @Chris Haas, pero no parece posible obtener el resultado completo del ejecutable de python interactivo. –
Cuando no usa ShellExecute , la API llamada es 'CreateProcess' y se sabe que no acepta'/'como un separador de directorio. –