Tengo una aplicación de consola que estoy usando para ejecutar trabajos programados a través del programador de Windows. Toda la comunicación a/desde la aplicación está en el correo electrónico, registro de eventos, registros de la base de datos. ¿Hay alguna forma en que pueda suprimir la ventana de la consola?. Aplicación de consola .Net que no muestra una consola
Respuesta
Sure. Constrúyalo como una aplicación de winforms y nunca muestre su formulario.
Solo tenga cuidado, porque entonces ya no es una aplicación de consola, y hay algunos entornos donde no podrá usarla.
¿Por qué no haces que la aplicación sea un servicio de Windows?
¡Trabajos no programados! = Servicio de Windows. A menos que esté usando el correo electrónico para iniciar el procesamiento, en cuyo caso un servicio es una mejor opción. –
Sí, he pasado por ese camino antes. Utilizo para crear trabajos programados usando la infraestructura del servicio, pero finalmente me di cuenta de que hacerlo de esa manera resulta en un código innecesario y actualizaciones difíciles. En resumen, ¡recrea una infraestructura que el planificador de tareas ha proporcionado de forma gratuita! – Jeff
Eso está bien, pero no veo razones para rechazar la pregunta de Badaro. –
Es un truco, pero la siguiente entrada de blog describe cómo se pueden ocultar la ventana de la consola:
http://expsharing.blogspot.com/2008/03/hideshow-console-window-in-net-black.html
Muy buen hallazgo. Usaré esto más de una vez en algún momento en el futuro. Gracias Philippe. Por cierto, no creo que invocar user32.dll sea un hack si no está en el framework .Net. Es solo "cómo se hace". – philologon
Tomado de MSDN (link text):
using System.Runtime.InteropServices;
...
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
...
//Sometimes System.Windows.Forms.Application.ExecutablePath works for the caption depending on the system you are running under.
IntPtr hWnd = FindWindow(null, "Your console windows caption"); //put your console window caption here
if(hWnd != IntPtr.Zero)
{
//Hide the window
ShowWindow(hWnd, 0); // 0 = SW_HIDE
}
if(hWnd != IntPtr.Zero)
{
//Show window again
ShowWindow(hWnd, 1); //1 = SW_SHOWNORMA
}
programar la tarea para ejecutar como un usuario diferente de su cuenta y no aparecerá una ventana emergente. . .
Simplemente configure la tarea programada como "Ejecutar si el usuario ha iniciado sesión o no".
- 1. que muestra el porcentaje en la aplicación de consola .net
- 2. ¿Cómo una aplicación de consola .NET busca conjuntos referenciados?
- 3. Cómo ejecutar una aplicación de consola .NET en segundo plano
- 4. Ejecutar aplicación de consola desde otra aplicación de consola
- 5. ¿Cómo mantener una aplicación de consola .NET ejecutándose?
- 6. Temporizador confiable en una aplicación de consola
- 7. "Al salir" para una aplicación de consola
- 8. Escribir una consola dentro de una aplicación
- 9. HttpUtility.UrlEncode en aplicación de consola
- 10. Asignar una consola para una aplicación WinForm
- 11. TBitmap.Create que no trabajan en la aplicación de consola delphi
- 12. Evento de salida de la aplicación de consola .NET
- 13. aplicación de consola de Javascript?
- 14. ¿Cómo construyo una aplicación de consola VB6?
- 15. .NET Controlador global de excepciones en la aplicación de consola
- 16. IOC para una aplicación de consola?
- 17. ¿Cómo espero hasta que una aplicación de consola esté inactiva?
- 18. Cómo implementar una aplicación de consola
- 19. Usando ELMAH en una aplicación de consola
- 20. ¿Existe alguna manera de crear una segunda consola para generar en .NET cuando se escribe una aplicación de consola?
- 21. Desactivar la ventana de la consola que muestra
- 22. La consola de Eclipse no muestra la salida completa
- 23. Utilizando la clase .NET BackgroundWorker en la aplicación de consola
- 24. Mostrar/Ocultar la ventana de la consola de una aplicación de consola C#
- 25. Aplicación de consola ChromeDriver ocultar
- 26. Consola avanzada IO en .NET
- 27. Aplicación .NET que se ejecuta como Windows Form o como aplicación de consola
- 28. Aplicación de consola C#: ¿Impide que se imprima Control-C?
- 29. Cómo convierto una aplicación de consola .NET a una aplicación Winforms o WPF
- 30. System.Drawing.Color en la aplicación de consola
¿De qué forma puedo hacerlo dentro del proyecto existente para no tener que migrar cosas? – Jeff
Haga clic con el botón derecho en el proyecto, vaya a Propiedades y, en el formulario que aparece, cámbielo de una aplicación de consola a una aplicación de WinForms, ciérrela y vuelva a compilar. –
Gracias Chris, ¡funcionó muy bien! – Jeff