Page 1 of 1

Captura de pantalla

Posted: Sat Jan 17, 2009 10:59 pm
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.

Re: Captura de pantalla

Posted: Sun Jan 18, 2009 8:06 am
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

Re: Captura de pantalla

Posted: Sun Jan 18, 2009 2:21 pm
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

Re: Captura de pantalla

Posted: Sun Jan 18, 2009 7:40 pm
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

Re: Captura de pantalla

Posted: Sun Jan 18, 2009 8:47 pm
by JmGarcia
Me sale una escueta ventana diciendome "error 87"

El error es en DibFromBitmap

:roll:

Re: Captura de pantalla

Posted: Sun Jan 18, 2009 9:58 pm
by Antonio Linares
JM,

Te genera un fichero error.log ?

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