Capturar con GDI+ las regiones del formulario en C# y VB

Capturar la ventana completa del formulario con o sin decoración (área cliente) o una región que se corresponde con un control PictureBox usando GDI+ mediante objetos Graphics de origen y destino y la función BitBlt que combina 2 mapas de bits en uno solo, en C# y VB

En un artículo anterior se mostraba cómo aplicar un recorte circular a la imagen de un control PictureBox para que la imagen se vea redondeada. He ampliado el ejercicio continuando 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.

Este ejercicio añade la funcionalidad de captura de pantalla usando métodos de las clases de GDI+ explicando cómo hacer para capturar la ventana de la aplicación completa (con bordes y decoraciones), la ventana sin decoración (lo que se llama área cliente del formulario) o una región específica de la ventana, la de un control PictureBox de imagen redondeada, y guardar los resultados como imagen JPG en el directorio del ensamblado. Estas imágenes JPG se muestran en un formulario nuevo.

Continuar leyendo «Capturar con GDI+ las regiones del formulario en C# y VB»

Captura de pantalla o ventana activa en C#

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

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. Es la versión hecha en C# del ejercicio anterior hecho en Visual Basic. El proceso para hacer la captura es el siguiente:

Continuar leyendo «Captura de pantalla o ventana activa en C#»

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
Continuar leyendo «Captura de pantalla o ventana activa en VB»