Visualizar/Ocultar la consola en una aplicación.

Hemos estado desarrollando varias aplicaciones de consola que hagan diversas funcionalidades (conectarse a un servidor sFtp, Ftp, Ftps, a WebServices, a Bases de Datos, etc) y el cliente quiere que dependiendo de un parámetro de  configuración se pueda visualizar o no la consola para fines de monitoreo.

Para realizar la visualización u ocultar la pantalla de consola en una aplicación hay que realizar los siguientes pasos:

1.- Crear un nuevo proyecto “Aplicación de Consola”.

2.- Ir a la ventana de propiedades del proyecto que acabamos de crear.

3.- En la pestaña de aplicación, en la opción “Tipo de resultado” seleccionar “Aplicación para Windows” y cerrar la pantalla de propiedades.

4.-  Agregar los métodos AllocConsole y FreeConsole a la clase principal como se muestra a continuación:

    class Program
    {
        [DllImport("kernel32.dll")]
        static extern bool AllocConsole();
 
        [DllImport("kernel32.dll")]
        public static extern Boolean FreeConsole();
 
        static void Main(string[] args)
        {
 
        }
    }

5.- En el método Main se puede permitir la visualización de la consola dependiendo de algún parámetro configurado en el archivo App.config

   static void Main(string[] args)
        {
 
            if (Convert.ToBoolean(ConfigurationManager.AppSettings["activarVisualizacionEventosEnConsola"]))
                AllocConsole();
 
            //[Tú código]
 
            if (Convert.ToBoolean(ConfigurationManager.AppSettings["activarVisualizacionEventosEnConsola"]))
            {
                Console.WriteLine("Presione enter para terminar el proceso");
                Console.ReadLine();
                FreeConsole();
            }
        }

 

Esperando que les sea útil esta información y recuerden que la compartir la información enriquecen a todos.

Analista/Desarrollador y cofundador de QBit Mexhico. Tecnologías utilizadas Android, Java (EJB, Servlets, Faces, Groovy & Grails, Maven, Swing), .Net (C#, VB, ASP, MVC), Delphi, Spring, Hibernate, DTSx, Oracle, T-SQL, Firebird, MySQL, MongoDB, NodeJs, ReactJs (Flux). Sistemas Operativos Mac, Ubuntu y Windows.

Twitter LinkedIn 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *