Estoy tratando de crear un proceso en una máquina remota usando la clase System.Diagnostics.Process. Puedo crear un proceso. Pero el problema es que crear un servicio lleva mucho tiempo y se muestra la ventana de la consola. Otra cosa molesta es que la ventana de la consola se muestra en la parte superior de mi formulario de Windows y no puedo hacer ninguna otra operación en ese formulario. He configurado todas las propiedades como CreateNoWindow = true
,
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
pero aún muestra la ventana de la consola. incluso he redirigido la salida y los errores a una secuencia separada, pero no tuve suerte.
¿Hay alguna otra forma de ocultar la ventana de la consola? Por favor, ayúdame .
Aquí está la parte de mi código que utilicé para ejecutar el comando sc.
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "sc";
proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe");
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
c#
process
console-application
Prasad
fuente
fuente
proc.StartInfo.RedirectedStandardOutput = true
? He conseguido que esto funcione con una aplicación de Windows.UseShellExecute
yCreateNoWindow
dos veces?Respuestas:
Tuve un problema similar al intentar iniciar un proceso sin mostrar la ventana de la consola. Probé con varias combinaciones diferentes de valores de propiedad hasta que encontré una que mostraba el comportamiento que quería.
Aquí hay una página que detalla por qué la
UseShellExecute
propiedad debe establecerse como falsa.http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.createnowindow.aspx
En la sección Comentarios en la página:
fuente
startInfo.UseShellExecute = false;
Tuve mala suerte con esta respuesta, con el proceso (Wix light.exe) básicamente saliendo a almorzar y no llegando a casa a tiempo para la cena. Sin embargo, lo siguiente funcionó bien para mí:
fuente
CreateNoWindow = true
no funcionó para mí, esto sí :)Esto debería funcionar, inténtalo;
Agregue una referencia del sistema.
Luego use este código para ejecutar su comando en una ventana CMD oculta.
fuente
Esto no muestra la ventana:
fuente