FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Capturar trozos de pantalla
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Capturar trozos de pantalla
Posted: Fri Nov 30, 2012 06:38 AM

Se me plantea un nuevo reto y estoy un poco perdido, a ver si me pueden indicar el camino. Tenemos instalado un samarthTV (dlna) y me han planteado la idea de poder poner imágenes de nuestros programas para que sirvan de publicidad y que todo el mundo pueda tener conocimiento de cosas de nuestros programas. Muchas de las cosas son reportes y otras cosas que he integrado de internet como por ejemplo los calendarios de google y la página web corporativa (site). Quiero que aparezca una captura de pantalla y que se guarde en una carpeta. Mirar la información del DLNA y veréis como funciona, el TV mostraría estas imágenes como si fueran diapositivas. Toda la configuración de la red y del televisor la tengo lista lo que quiero hacer es poder seleccionar dinámicamente trozos de nuestros programas para que me lo guarde directamente como imagen. Esto lo he conseguido directamente con programas externos de captura de pantalla a los que le indico el trozo y donde lo tengo que guardar. Pero mi pregunta es si esto se puede hacer desde el programa fivewin sin depender de programas externos. Me gustaría poner un boton en la barra de menu que seleccione un trozo predefinido y que ademas lo pueda mover y que lo guarde directamente. Esto es posible o es muy complicado desde FW? Creo que lo difícil debe ser crear el cuadro para luego modificarlo, puesto que según creo el poder capturar pantalla no es difícil.

Gracias
Andy

Saludos



Andrés González desde Mallorca
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: Capturar trozos de pantalla
Posted: Fri Nov 30, 2012 07:34 AM

He visto algo de Daniel, pero me da problemas, alguna idea?

viewtopic.php?f=6t=19403p=137655#p137655

&&

Saludos



Andrés González desde Mallorca
Posts: 145
Joined: Wed Nov 03, 2010 09:16 AM
Re: Capturar trozos de pantalla
Posted: Fri Nov 30, 2012 08:03 AM
Hola. A ver si te vale esto:

Code (fw): Select all Collapse
#define SRCCOPY 13369376

local hDC := oWnd:GetDC()
local hBmp :=SaveScreen( hDC,10, 10, 300,300 )
oWnd:ReleaseDC()
DeleteObject( hBmp)



****************************************************************************************
 function savescreen( hDC, nTop, nLeft, nBottom, nRight )
****************************************************************************************

   local hBmpMem, hOldBmp
   local hDCMem
   local nWidth, nHeight

   hDCMem  = CreateCompatibleDC( hDC )

   nWidth  := nRight - nLeft
   nHeight := nBottom - nTop

   hBmpMem := CreateCompatibleBitmap( hDC, nWidth, nHeight )
   hOldBmp := SelectObject( hDCMem, hBmpMem )
   BitBlt( hDCMem, 0, 0, nWidth, nHeight, hDC, nLeft, nTop, SRCCOPY )
   SelectObject( hDCMem, hOldBmp )
   DeleteDC( hDCMem )

return hBmpMem

****************************************************************************************
  static function RestoreScreen( hDC, hBmp, nTop, nLeft )
****************************************************************************************

DrawBitmap( hDC, hBmp, nTop, nLeft )

return nil

function savehbmptofile( hBmp, cFileName )

DibWrite( cFileName, DibFromBitmap( hBm ) )

return 0


Si quieres capturar partes de la ventana con título y bordes tienes que sustituir el oWnd:GetDC por GetWindowDC( oWnd:hWnd )

Un saludo
Paco García
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: Capturar trozos de pantalla
Posted: Fri Dec 07, 2012 02:46 PM
Sí esto es,voy a mirar como lo sincronizo y comento cosas.
Gracias.

PD.: Buscando he encontrado esto con proyectos dlna, creo que es un muy buen complemento para nuestros programas: http://elinux.org/DLNA_Open_Source_Projects
Saludos



Andrés González desde Mallorca

Continue the discussion