In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Captura de toda la pantalla o por monitores

Foro de Xailer profesional en español
Responder
avitalini
Mensajes: 143
Registrado: Mié Ene 07, 2015 6:31 pm

Captura de toda la pantalla o por monitores

Mensaje por avitalini »

Buen día, hay algún ejemplo o librería para la captura de pantalla completa, o por monitores.
Ya que voy hacer un sistema de control de asistencia y revisión de pantallas para el departamento de ventas.

Gracias de antemano
avitalini
Mensajes: 143
Registrado: Mié Ene 07, 2015 6:31 pm

Re: Captura de toda la pantalla o por monitores

Mensaje por avitalini »

En base al ejemplo de Xailer Barcode hice el siguiente código.

XA_CaptureBitmap funciona con Screen:Handle pero no con oMonitor:Handle, tomado del Array Screen:aMonitors

¿Alguien que me pueda echar una mano?

Gracias de antemano.

Código: Seleccionar todo

function Captura()
   Local aMonitores
   Local oMonitor

   aMonitores := SCREEN:aMonitors

   for each oMonitor in aMonitores
      Procesode_Captura( oMonitor , oMonitor:nMonitor )
   next

return nil

Function Procesode_Captura( oMonitor , nMonitor )

   LOCAL hBitmap
   LOCAL aRect
   LOCAL oPict
   Local cNombre

   aRect := { 0 , 0 , oMonitor:nWidth , oMonitor:nHeight }

   hBitmap := XA_CaptureBitmap( oMonitor:Handle , aRect ) // <-- en Monitores no funciona

   oPict := TPicture():CreateIndirect( 1 , hBitmap )
   cNombre := "Monitor-" + ToString( nMonitor ) + "-"  + DToS( Date() ) + "-"+ StrTran( Time() , ":","")+".jpg"
//   OutDebug( cNombre )
   oPict:Save( cNombre, 1 )
   oPict:End()

Return nil
Responder