Agenda telefónica desde XML en VB

Leer una agenda telefónica desde un archivo XML que actúa como origen de los datos, configurando columnas personalizadas de un control DataGrid, en Visual Studio 2017 con VB

En este ejercicio se diseña una sencilla agenda telefónica que lee los datos desde un archivo XML en lugar de hacerlo desde una base de datos. Las principales características del ejercicio son:

  1. Lectura desde un archivo XML, configurado como origen de los datos
  2. Mostrar los datos en un control DataGrid personalizado
  3. Mostrar registros utilizando filtros de búsqueda basados en sentencias SQL simples
  4. Creación de una clase propia de columna de DataGrid que sólo acepta números.

Leer más

Captura de pantalla o ventana activa en VB

Capturar la pantalla o la ventana activa usando la clase SendKeys sin recurrir a librerías externas en Visual Studio 2017 con VB

En este ejercicio se propone una manera relativamente sencilla para capturar tanto la pantalla completa como la ventana activa, copiarla al portapapeles y almacenarla en disco como JPG. Este ejercicio constituye un ejemplo más de que es posible realizar con Visual Basic .NET aplicaciones relativamente complejas y utilizables como ésta aunque el programador no tenga un nivel avanzado. El proceso para hacer la captura es el siguiente:

  • se minimiza la aplicación para que no salga en la captura con el ítem Minimized de la enumeración FormWindowState
  • el proceso queda suspendido durante 500 milisegundos con el método Sleep de la clase Thread
  • la pulsación de teclas es enviada con el método SendWait de la clase SendKeys para obtener la captura en ese intervalo
  • las teclas que se envían son las que se utilizan en Windows para hacer estas capturas
  • desde el portapapeles se obtiene un objeto Bitmap que permite guardar la imagen en disco y mostrarla en el PictureBox

Leer más

Borrar los archivos temporales en VB

Ejercicio que obtiene las variables de entorno TEMP y APPDATA, lee y escribe en un archivo de texto para llevar la cuenta de archivos borrados e inicia un nuevo hilo o hebra (thread) para reiniciar el formulario, en Visual Studio 2017 con VB

En este ejercicio se propone una aplicación que borra los archivos temporales de Windows y la carpeta que los contiene, leyendo la variable de entorno TEMP definida para el usuario de la sesión actual. Además, se muestra al usuario información sobre:

  1. número de archivos encontrados en la ejecución actual dentro de la carpeta que corresponda a la variable de entorno %TEMP%
  2. número de archivos borrados en la ejecución actual (sólo se borran los archivos que no estén en uso)
  3. número total acumulado de archivos borrados por el programa desde su primera ejecución leyendo este dato desde un archivo de texto colocado en la carpeta que corresponda a la variable de entorno %APPDATA%.

Leer más

Reproductor de archivos MP3 en VB (3)

Reproductor MP3 con capacidad de reproducción aleatoria y navegación por unidades de disco y carpetas en controles ComboBox y TreeView junto con selección de canción en control ComboBox, en Visual Studio 2017 con VB

En 2 artículos anteriores se mostraba la forma de construir, sin conocimientos avanzados de programación, un reproductor de archivos MP3 añadiendo al proyecto el control Active X de Windows Media Player 9:

Leer más

Reproductor de archivos MP3 en VB (2)

Reproductor de canciones MP3 capaz de hacer reproducción aleatoria de los archivos existentes en una carpeta seleccionada mostrando información de la canción, realizado con Visual Studio 2017 con VB

Anteriormente publiqué un artículo sobre un reproductor de archivos MP3 muy sencillo con botones de reproducción y selección de archivos, utilizando el OCX de Windows Media Player 9 (WMP en adelante). Continuando ese ejercicio, se ha incluido la funcionalidad de reproducir los archivos de forma aleatoria: el programa crea un array con todas las canciones existentes en una determinada carpeta y, mediante las funciones Randomize() y Rnd(), genera un índice aleatorio que asigna al reproductor para que suene el ítem del array con el mismo índice. El control OCX de WMP se mantiene oculto, no se muestra en la ventana principal del programa pero se utilizan sus funcionalidades.
Tienes disponible una versión más compleja de este ejercicio: 3.

Leer más

Reproductor de archivos MP3 en VB (1)

Reproductor MP3 que usa el control OCX de Windows Media Player 9 oculto en la ventana y muestra información de la canción que suena, realizado en Visual Studio 2017 con VB

En este ejercicio se aprende a usar el control OCX de Windows Media Player 9 mediante la agregación de una referencia COM en el proyecto. El control no se muestra al usuario (permanece oculto en la ventana) y sus funciones se substituyen con botones y código propio. Este control ActiveX nos proporciona funcionalidades de reproducción de archivos multimedia (mp3, m3u…) sin que tengamos que crear código específico para esas funciones y con nivel de dificultad accesible a usuarios poco avanzados. Tienes disponibles 2 versiones más complejas de este ejercicio: 2 y 3.

Leer más

Regedit en la clave superior desde C# y VB

Abrir el Editor del Registro (Regedit) en la clave superior Mi PC como en las versiones antiguas de Windows y no en la última clave visitada manipulando cadenas del registro, con C# y Visual Basic

En los sistemas operativos Windows anteriores a XP el programa Regedit abre siempre en la clave superior del árbol del registro (Mi PC). En cambio, en Windows XP y posteriores, abre en la última clave visitada. Esto es muy cómodo cuando se necesita abrir con frecuencia el registro para tareas de mantenimiento o configuración. Sin embargo algunas personas pueden preferir el comportamiento anterior. En este ejercicio se diseña una aplicación para abrir Regedit en MiPC y sirve para mostrar cómo acceder al registro de Windows desde Visual Basic .NET

Leer más

Formularios en hilos separados en C# y VB

Arrancar 2 formularios diferentes pero cada uno de ellos en su propio hilo utilizando clases de System.Threading que permiten la programación multiproceso en C# y en VB

Es frecuente tener una aplicación con 2 formularios en la que desde el primero en aparecer iniciamos el otro y, al cerrar el primer formulario, se cierra el segundo automáticamente. Pero en ocasiones puede interesarnos que el cierre del primer formulario no conlleve el cierre del segundo, es decir, que ambos formularios sean verdaderamente independientes y que ambos se inicien a la vez (al arrancar la aplicación). El comportamiento por defecto en las aplicaciones de Visual Studio es el comentado en primer lugar, se debe a que ambos formularios se ejecutan en el mismo hilo del proceso principal iniciado por el formulario 1 por lo que, al cerrarlo, terminamos ese hilo y todo lo que en él sucede incluido el segundo formulario.

Leer más

Configurar Visual Studio Code en español

Cómo poner en español el nuevo programa de Microsoft para editar código

Microsoft ha publicado un editor de código fuente para programadores llamado Visual Studio Code. (VSC en adelante). Es gratuito y se puede descargar desde la web de Microsoft. Hay versiones para Windows, macOS y también para Linux. Su funcionamiento es bueno y su interfaz es muy agradable.

Nota: actualmente en la versión 1.33 no es necesario realizar la tarea propuesta en este artículo, basta con abrir el menú Command Palette y buscar Configure Display Language donde aparece una opción de instalar idiomas adicionales, eliges español, pide reiniciar y listo.

Por defecto este programa se instala en inglés pero existe la posibilidad de ponerlo en español de una forma relativamente sencilla. VSC maneja la configuración del idioma mediante un archivo llamado locale.json que por defecto contiene la configuración ya comentada del idioma inglés. Para acceder a este archivo hay que abrir el menú Command Palette (Comando+Shift+P) y buscarlo escribiendo la palabra display que nos mostrará las configuraciones que contienen esa palabra, de ellas nos interesa el comando Configure Display Language. Pulsando INTRO se crea el archivo locale.json si no existiese previamente y se muestra de esta forma:

{
// Defines VS Code's display language
"locale":"en-US"
}

Para poner VSC en español hay que hacer 2 cosas. En primer lugar descargar el paquete de idioma español desde el Marketplace en el que Microsoft tiene alojados los diferentes paquetes. Una vez instalado, modificar el archivo locale.json para hacer coincidir la variable «locale» con «es» o con «es-ES»:

{
// Defines VS Code's display language
"locale":"es-ES"
}

Guardar el archivo y reiniciar el programa. Si todo ha ido bien, VSC se mostrará en español.

Elemento PictureBox redondeado en C# y VB

PictureBox sobre el que se dibuja una región de recorte de forma circular con el método GraphicsPath.AddEllipse para obtener una imagen redonda, en C# y VB

Tienes una versión más compleja de este ejercicio aquí.

Clase GraphicsPath

La clase GraphicsPath del espacio de nombres System.Drawing.Drawing2D tiene objetos que representan figuras (líneas y curvas conectadas). Las aplicaciones usan estas secuencias de datos con líneas y curvas (path) para dibujar los bordes o rellenar el interior de las figuras y crear zonas de recorte. El motor gráfico mantiene las coordenadas de las figuras geométricas en objetos path que pueden estar formados a su vez por otras figuras (subpath).

Leer más