Desarrollar una nueva generación de aplicaciones de consola en VB2005
Los usuarios de computadoras a menudo ven las aplicaciones de consola como una especie de "reliquia", pero siguen siendo una parte muy querida de los administradores de sistemas y la "caja de herramientas" de un usuario experto. Además, este tipo de aplicación de consola se utiliza cuando se necesitan muchas operaciones de script repetidas y, por supuesto, operaciones más complejas.
Las primeras versiones de Visual Basic proporcionaban poco soporte para la creación de aplicaciones de consola. Además, aunque VB 6 y versiones anteriores son capaces de crear aplicaciones de consola, este no es un proceso simple o directo; Crear una aplicación de consola en VB 6 requiere realizar llamadas a la API de Win32; incluso entonces, no tiene control sobre la posición del cursor o el color del texto, y está restringido en gran medida a la codificación de izquierda a derecha y de arriba a abajo.
Ahora se han introducido nuevas funciones de la aplicación de consola. No solo proporciona un proyecto de aplicación de consola en el cuadro de diálogo "Nuevo proyecto...", sino que, lo más importante, también proporciona un objeto de consola. Por lo tanto, ya no tiene que "molestarse" con la API de Win32. Sin embargo, todavía está limitado a la codificación "de izquierda a derecha y de arriba a abajo". Sin embargo, todavía faltan métodos o propiedades para cambiar la posición o el color del cursor o del texto, así como muchas otras funciones más avanzadas.
1. Nuevas funciones de la aplicación de consola en VB 2005
Basado en el objeto Consola proporcionado en versiones anteriores, VB 2005 ahora agrega muchas más funciones a las aplicaciones de consola. A continuación se enumeran algunas de las características más interesantes de VB 2005:
· Limpiar la ventana de la consola
· Obtener y configurar la posición y el tamaño del cursor
· Obtener y establecer el alto y ancho de la ventana
· Obtener y establecer los colores de primer plano y fondo
· Seleccionar y mover parte del texto dentro de la ventana de la consola
Otras secciones de este artículo analizarán en detalle el proceso de creación de una aplicación de consola para demostrar el uso de estas características.
2. Aplicación de ejemplo: DirCopy
A menudo copio archivos de un directorio a otro desde la ventana de la consola. Cuando copio un directorio con una gran cantidad de archivos, a menudo me gusta obtener alguna indicación: ¿cómo se completa el proceso de copia? ¿La copia está casi terminada o debo esperar un poco más? Para solucionar este problema, creé una aplicación de consola que muestra gráficamente el progreso de la copia mostrando una barra de progreso dentro de la ventana de la consola.
3. Definir funciones
Para simplificar los propósitos de demostración de este artículo, DirCopy utilizará dos parámetros de línea de comando: un directorio de origen y un directorio de destino. Luego, copia todos los archivos del directorio de origen al directorio de destino. Tenga en cuenta que este sencillo programa no puede copiar subdirectorios en el directorio de origen.
Primero, escribo una subrutina DisplayUsage. Si se llama a DirCopy con demasiados o muy pocos argumentos de línea de comando, llamará a DisplayUsage y luego finalizará. La Figura 1 muestra los resultados de ejecutar DirCopy sin ningún argumento de línea de comando.
El siguiente es el código de la subrutina DisplayUsage:
Private Sub DisplayUsage()
Dim originalForegroundColor As ConsoleColor = Console.ForegroundColor
Console .Clear()
Console.ForegroundColor = ConsoleColor.Green
Console.WriteLine("DirCopy 1.0")
Console.WriteLine("Escrito por Josh Fitzgerald ")
Console.WriteLine(New String("-", Console.WindowWidth))
Console.WriteLine("DirCopy copiará todos los archivos del p>
carpeta de origen a")
Console.WriteLine("carpeta de destino. Mientras se copian los archivos
, aparece una barra de progreso")
Console .WriteLine("mostrará el porcentaje completado.")
Console.WriteLine()
Console.WriteLine("Si el nombre de un directorio contiene espacios, encierre
entre comillas dobles.")
Console.WriteLine()
Console.Write("Ejemplo: ")
Console.ForegroundColor = ConsoleColor .Magenta
Console.WriteLine("DirCopy C:MyFolder C:MyNewFolder")
Console.ForegroundColor = ConsoleColor.Green
Console.WriteLine()
Console.Write("Ejemplo: ")
Console.ForegroundColor = ConsoleColor.Magenta
Console.WriteLine("DirCopy ""C:Mi carpeta"" "" C: Mi Nueva Carpeta""")
Console.ForegroundColor = originalForegroundColor
End Sub
Lo primero que hace esta subrutina es crear una variable originalForegroundColor, luego almacena el valor de Console.ForegroundColor. Al final de la subrutina, el código establece la propiedad Console.ForegroundColor nuevamente en originalForegroundColor.
Cuando analizas esta parte del código, notarás que esto se hace en cada subrutina que modifica el color de primer plano o de fondo. Antes de ejecutar DirCopy, quiero asegurarme de que DirCopy siempre haga que la consola muestre el mismo color.
Lo siguiente que hace DisplayUsage es borrar la pantalla de la consola usando el método Console.Clear. Este es uno de los nuevos métodos en VB2005, de esta manera, los programadores pueden tener fácilmente una ventana de consola limpia.
Quiero que el texto de ayuda se destaque, así que establecí la propiedad ForegroundColor en verde. Luego, utilizo los métodos Writeline y Write para mostrar algunas líneas de texto en la pantalla. Al final de la descripción, incluí algunos ejemplos de cómo ejecutar DirCopy. Quería que estos ejemplos se destacaran; por lo tanto, configuré ForegroundColor en magenta.