Ocultar la ventana de la consola en la aplicación de consola C #


105

La cuestión es que realmente no quiero que aparezca la ventana de la consola ... pero la solución debería estar ejecutándose. Mi punto aquí es que quiero mantener la aplicación ejecutándose en segundo plano, sin que aparezca ninguna ventana.


2
¿Puede darnos un poco más de información sobre lo que debería hacer la aplicación? ¿Parece que debería ser un servicio o una aplicación de Windows? Con un poco de conocimiento sobre su propósito, podríamos ayudar mucho más y sugerir la mejor manera de resolver esto.
Dave

Su aplicación keylogger. Utilicé el servicio de Windows pero no puede obtener estados clave en el servicio de Windows
Usuario SOF

Respuestas:


188

Cambie el tipo de salida de Aplicación de consola a Aplicación de Windows . Esto se puede hacer en Proyecto -> Propiedades -> Aplicación en Visual Studio:

texto alternativo


4
La ventana de la consola parpadea y retrocede. ¿Cómo mantengo la aplicación ejecutándose sin ninguna ventana?
Usuario SOF

Usuario @SOF: ¿Cómo se inicia la aplicación? ¿Haciendo doble clic en el Explorador o desde el menú Inicio?
Dirk Vollmar

también he puesto Console.ReadLine ();
Usuario SOF

16
Quite el Console.ReadLine. No tiene ningún sentido si no tiene una ventana de consola.
Dirk Vollmar

1
@ KarolŻurowski: La idea aquí es que lo usarías para aplicaciones que también vienen con algún tipo de interfaz de usuario (por ejemplo, un icono en la bandeja del sistema) o aplicaciones que realizan una determinada tarea y luego salen automáticamente cuando terminan. Si no tiene ninguno, la aplicación se ejecutará en segundo plano hasta que cierre la sesión o se apague o hasta que se elimine explícitamente, por ejemplo, utilizando el Administrador de tareas.
Dirk Vollmar

26

Cambie su tipo de aplicación a una aplicación de Windows. Su código aún se ejecutará, pero no tendrá ventana de consola, ni ventana estándar de Windows a menos que cree una.


2
La ventana de la consola parpadea y retrocede. ¿Cómo mantengo la aplicación ejecutándose sin ninguna ventana?
Usuario SOF

Te aseguras de que no termine. Realmente no hay mucho más que decir sin más información. ¿Qué hace el programa? ¿Ejecuta algo en un bucle?
Lasse V. Karlsen

1
Cambiar el "Tipo de salida" de la aplicación a "Aplicación de Windows" funcionó para mí.
hellowahab

12

En lugar de Console.Readline/keyque pueda utilizar new ManualResetEvent(false).WaitOne()por fin. Esto funciona bien para mi.


3

Tal vez quieras intentar crear una aplicación de servicio de Windows . Se ejecutará en segundo plano, sin ninguna interfaz de usuario.


3
El servicio de Windows no puede obtener eventos de tecla presionada
Usuario SOF

1
Los servicios están severamente limitados dependiendo de su aplicación, a partir de Windows Vista están forzados a la Sesión 0 y, por lo tanto, no pueden realizar nada en otras sesiones, como mostrar mensajes emergentes.
Matt

1
@Matt "no puede realizar nada en otras sesiones" no es del todo cierto. Aquí hay un proyecto de código para un Servicio que abre un símbolo del sistema de administrador en el escritorio del usuario que inició sesión. codeproject.com/Articles/35773/…
Qodex

0

Cambie el tipo de salida de Aplicación de consola a Aplicación de Windows ,

Y en su lugar Console.Readline/key, puede usar new ManualResetEvent(false).WaitOne()al final para mantener la aplicación en funcionamiento.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.