Captura de pantalla en VB .NET

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

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
Continuar leyendo “Captura de pantalla en VB .NET”

Borrar temporales en Visual Studio 2017

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

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%.
Continuar leyendo “Borrar temporales en Visual Studio 2017”

Listado recursivo en VB. NET 2017

Listar de forma recursiva todos los archivos de un directorio y de los subdirectorios que contiene, informando del tiempo requerido para la tarea, con botones para ordenar la lista de forma ascendente o descendente, en Visual Studio 2017

Damián Castroviejo tiene un ejercicio titulado “How to use a recursive function to read a directory structure and save it to XML” cuyo código consigue listar adecuadamente de forma recursiva los archivos de un directorio y de sus subdirectorios y guardar la estructura de archivos y carpetas en un archivo XML. Aplicando la función recursiva propuesta por Damián Castroviejo, en este ejercicio se rellena un control ListBox con todos los archivos existentes en una carpeta determinada.

Continuar leyendo “Listado recursivo en VB. NET 2017”

Quitar el botón cerrar en C# .NET 2017

Deshabilitar el botón cerrar de la barra de título de la ventana en C# usando procedimientos externos a .NET existentes en librerías del sistema (Platform Invoque) en Visual Studio 2017

Un programador desea que una aplicación arranque sin que pueda ser terminada por el usuario pulsando el botón Cerrar de la Barra de título del formulario (el aspa o la equis de la esquina derecha) ni mediante la pulsación de las teclas ALT+F4. El código en C# que se presenta en este artículo desactiva ese botón y el efecto de las teclas ALT+F4.

Continuar leyendo “Quitar el botón cerrar en C# .NET 2017”

Formulario redondeado en VB .NET

Aplicar regiones a un formulario en Visual Basic .NET, usando objetos GraphicsPath, para cambiar su forma

Resumen

Utilizando objetos GraphicsPath y aplicando regiones de recorte es sencillo modificar la forma de un formulario. Podemos darle prácticamente cualquier aspecto pero, por sencillez del código, en este ejercicio nos restringiremos a 3 formas, círculo, rombo y polígono, usando objetos GraphicsPath y regiones de recorte con el aspecto deseado.

Continuar leyendo “Formulario redondeado en VB .NET”

PictureBox redondeado en VB .NET

PictureBox con forma redondeada en Visual Basic .NET: Dibujar una figura sobre la imagen del PictureBox con un objeto GraphicsPath

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 de las figuras, 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. Los objetos path puede estar formados a su vez por otras figuras (subpath).

Continuar leyendo “PictureBox redondeado en VB .NET”

Autocompletado de texto en VB.NET

Combobox con función de autocompletado de texto al escribir en Visual Basic .NET

Resumen del ejercicio: a medida que se van escribiendo letras en un cuadro de texto, otro cuadro de texto va mostrando la primera coincidencia de una lista de palabras de un control Combobox (similar a la función Intellisense).

Código en Visual Basic .NET

Utilizamos 2 controles TextBox, en uno escribimos las letras de la palabra buscada y el otro va mostrando la primera coincidencia.

La lista de palabras en las que buscaremos coincidencias están almacenadas en un control ComboBox, en este ejemplo he elegido las palabras reservadas del lenguaje pero puedes emplear cualquier otro ejemplo:

Continuar leyendo “Autocompletado de texto en VB.NET”

Formularios en hilos separados en VB.NET

En ocasiones tenemos una aplicación válida con 2 formularios, desde el primero en aparecer iniciamos el otro y, al cerrar el primer formulario, se cierra el segundo automáticamente. Pero en otras 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).

Continuar leyendo “Formularios en hilos separados en VB.NET”

Regiones GDI+ en VB.NET

Capturar la ventana completa, con o sin decoración, o una región que se corresponde con un control PictureBox, usando GDI+ en Visual Basic .NET

Aprovechando mi anterior artículo sobre un control PictureBox redondeado continuaré trabajando con GDI (Graphics Device Interface). GDI es es uno de los tres componentes de la interfaz de usuario de Microsoft Windows. Trabaja junto con el núcleo y la API de Windows. Estas son las imágenes capturadas tal como se muestran en el documento HTML:

Continuar leyendo “Regiones GDI+ en VB.NET”