Captura de pantalla

Post Reply
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Captura de pantalla

Post by JmGarcia »

Quisiera hacer un capturador de pantalla (screen capture).

Lo primero que la aplicación este siempre "arriba" encima de todo hasta que se pulse uno se sus botones.

En PC para estar arriba (on top)tengo este codigo:

Code: Select all

#define SWP_NOSIZE      1
#define SWP_NOMOVE      2
#define HWND_TOPMOST   -1
#define HWND_NOTOPMOST -2

SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOSIZE+SWP_NOMOVE)
Para no estar arriba (on top)

Code: Select all

SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE+SWP_NOMOVE)
¿ Como seria para FWPPC ?

Y después como me capturo "toda" la pantalla.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Captura de pantalla

Post by Antonio Linares »

JM,

No he probado este codigo, pero es el que usamos en FWH:

Code: Select all

function Captura()

   local hBmp := WndBitmap( GetDesktopWindow() )
   local hDib := DibFromBitmap( hBmp )

   DibWrite( cBmpFile, hDib )
   GloBalFree( hDib )
   DeleteObject( hBmp )

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Captura de pantalla

Post by JmGarcia »

¿ Y para que mi programa este siempre ON TOP ?
¿ Valdría el código de mi primer mensaje ?

Al complar me da este error:

Code: Select all

 error LNK2001: unresolved external symbol HB_FUN_GETDESKTOPWINDOW
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Captura de pantalla

Post by Antonio Linares »

JM,

> ¿ Y para que mi programa este siempre ON TOP ?

Yo creo que Windows Mobile pone en "top" la aplicación activa, por lo que no se si podras tener una aplicación mostrándose por encima de la aplicación principal.

Usa este código para GetDesktopWindow()

Code: Select all

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

HB_FUNC( GETDESKTOPWINDOW )
{
   hb_retnl( ( LONG ) GetDesktopWindow() );
}

#pragma ENDDUMP
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Captura de pantalla

Post by JmGarcia »

Me sale una escueta ventana diciendome "error 87"

El error es en DibFromBitmap

:roll:
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Captura de pantalla

Post by Antonio Linares »

JM,

Te genera un fichero error.log ?

Puedes poner aqui la imagen del emulador con el error ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply