2011-07-28 16 views
17

Comienzo una aplicación de consola a través de ProcessStartInfo y process.Start(). Quiero esconder la ventana negra. Aquí está mi código:Cómo iniciar el proceso oculto?

string output = ""; 
//Setup the Process with the ProcessStartInfo class 
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "C:\\WINNT\\system32\\cmd.exe"; 
startInfo.UseShellExecute = false; 
startInfo.RedirectStandardOutput = true; 

//Start the process 
Process proc = Process.Start(startInfo); 
+0

solución final con código fuente completo de muestra trabajando al respecto? CreateNoWindow = ¿verdad? – Kiquenet

+0

posible duplicado de [Ocultar ventana de consola desde Process.Start C#] (http://stackoverflow.com/questions/5377423/hide-console-window-from-process-start-c-sharp) – sirdank

Respuesta

25

intenta esto:

startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
+4

Eso hará el truco. Solo agregue que debe establecerse antes de llamar a 'Process.Start (startInfo)'. – Cipi

+1

pero no funciona aquí, ¿algunos otros trucos? –

+1

no funciona, pero ... ¿aparece un error, simplemente muestra la ventana negra? Necesito más información. : D – Jonathan

5

Trate

startInfo.WindowStyle = ProcessWindowStyle.Hidden; 
+0

Ya dado por @jonathan –

25

La respuesta final es

ProcessStartInfo psi = new ProcessStartInfo(); 
psi.FileName = .... 
psi.RedirectStandardInput = true; 
psi.RedirectStandardOutput = false; 
psi.Arguments =... 
psi.UseShellExecute = false; 

psi.CreateNoWindow = true; // <- key line

+3

CreateNoWindow me hizo el truco donde WindowStyle no tuvo ningún efecto. Estoy redirigiendo salida estándar de todos modos y ahora puedo evitar la ventana vacía. – Timo

1
Process p = new Process(); 
.... 
p.StartInfo.CreateNoWindow = true; 
p.Start(); 
+0

Esta respuesta no agrega ningún conocimiento nuevo a las respuestas existentes. – ShloEmi

Cuestiones relacionadas