Inicio > Visual Fox Pro > Capturando pantallas con GdiPlus-X

Capturando pantallas con GdiPlus-X


  Capturar una pantalla con Gdiplus-X es una tarea muy fácil también.

Lo que se tiene que hacer, es llamar al método FromScreen() de la clase de Bitmap. Para facilitar esta tarea, este método brinda diferentes posibilidades.
Todas los ejemplos siguientes utilizan la nueva librería GDIPlus-

1 – Capturar una pantalla de un _Screen enviando el hWnd del formulario o el formulario como un objeto

_SCREEN.AddProperty(“System”, NEWOBJECT(“xfcSystem”, LOCFILE(“_gdiplus.vcx”,”vcx”)))
LOCAL loCaptureBmp AS xfcBitmap
WITH _Screen.System.Drawing
   loCaptureBmp = .Bitmap.FromScreen(_Screen.HWnd)
   * Podría ser también :
   * loCaptureBmp = _screen.system.Drawing.Bitmap.FromScreen(Thisform)
   loCaptureBmp.Save(“c:\_Screen.bmp”, .Imaging.ImageFormat.bmp)
ENDWITH

2 – Capturar la pantalla entera

En este caso no es necesario pasar parámetros

_SCREEN.AddProperty(“System”, NEWOBJECT(“xfcSystem”, LOCFILE(“_gdiplus.vcx”,”vcx”)))
LOCAL loCaptureBmp AS xfcBitmap
WITH _Screen.System.Drawing
   loCaptureBmp = .Bitmap.FromScreen()
   loCaptureBmp.Save(“c:\Pantallaentera.bmp”, .Imaging.ImageFormat.bmp)
ENDWITH

3 – Capturar la pantalla de un formulario recortando sus bordes y título.

Utilizamos la función SYSMETRIC() para obtener la medida de los elementos de la pantalla, tales como la altura del título, borde superior e izquierdo. Entonces utilizamos otra posibilidad, enviando el hWnd, y las coordenadas del formulario que será capturado.

_SCREEN.AddProperty(“System”, NEWOBJECT(“xfcSystem”, LOCFILE(“_gdiplus.vcx”,”vcx”)))
LOCAL lnTitleHeight, lnLeftBorder, lnTopBorder
LOCAL loCaptureBmp AS xfcBitmap
lnLeftBorder = SYSMETRIC(3)
lnTopBorder = SYSMETRIC(4)
lnTitleHeight = SYSMETRIC(9)
WITH _Screen.System.Drawing
   loCaptureBmp = .Bitmap.FromScreen(;
      Thisform.HWnd, ;
      lnLeftBorder, ;
      lnTitleHeight + lnTopBorder, ;
      Thisform.Width, ;
      Thisform.Height)
   loCaptureBmp.Save(“c:\PantallaRecortada.png”, .Imaging.ImageFormat.Png)
ENDWITH

4 – Capturar todos los formularios de la pantalla

Se crea un ciclo por todas los formularios de _Screen, y capture cada uno de ellos enviando el Form.hWnd como parámetro.

_SCREEN.AddProperty(“System”, NEWOBJECT(“xfcSystem”, LOCFILE(“_gdiplus.vcx”,”vcx”)))
LOCAL loCaptureBmp AS xfcBitmap
LOCAL n
LOCAL loForm AS Form
n = 1
WITH _Screen.System.Drawing
 FOR EACH loForm IN _Screen.Forms
     loCaptureBmp = .Bitmap.FromScreen(loForm.HWnd)
     loCaptureBmp.Save(“c:\FormularioNumero” + TRANSFORM(n) + “.png”, .Imaging.ImageFormat.Png)
     n = n + 1
 ENDFOR
ENDWITH

Categorías:Visual Fox Pro
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: