Capturar pantalla desde un programa fivewin.

Capturar pantalla desde un programa fivewin.

Postby Andrés González » Fri Nov 10, 2006 12:46 pm

Alguien sabe si existe algo implementado en fivewin o harbour que permita capturar pantalla o trozo de pantalla del mismo programa hecho con fivewin, sin depender de un programa externo.
Me refiero a que quiero capturar un trozo de la pantalla para que luego el programa realice una serie de cosas con la pantalla capturada. A modo de ejmplo, si estamos mostrando un mapa o una foto dentro de fivewin, necesito poder tomar un area o la pantalla completa de esa foto, para que luego el mismo programa haga una serie de acciones como mandarla por mail, imprimirla o insertarla en un escrito y demas. Lo he visto con programa externo que te permiten capturar el trozo de pantalla que quieres y te genera el tipico BMP con el que posteriormente trabajas. Pero mi intencion es que sea fivewin que lo haga.
En mi caso concreo he implementado un ejemplo de jlcapel sobre como mostrar los mapas google en un programa fivewin mediante los activex http://www.capelblog.com/?p=83 , funciona muy bien, y nos facilitaria mucho el trabajo, mi intencion es definir un punto en el mapa para poderlo enviar por correo, indicando la zona de una averia viaria, para que los que reciben el correo acudan a ese lugar. Igual se puede hacer desde el api de google pero creo que mas facil seria poderlo implementar desde fivewin.

Gracias de antemando.
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Frafive » Fri Nov 10, 2006 1:51 pm

Andres

Tengo el mismo problema que tu , si encuentras alguna solucion por favor , la pones por aqui.

Una duda como le pasas el punto al mapa, se le podria pasar por ejemplo una localidad o provincia ?

Un saludo
Frafive
 
Posts: 189
Joined: Wed Apr 05, 2006 9:48 pm

Postby Alfredo Arteaga » Fri Nov 10, 2006 3:09 pm

... se me ocurre.

WndBitmap( Self:hWnd ) // to image
o
WndCopy( Self:hWnd, .F., .T. ) // to clipboard
User avatar
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico

una idea

Postby Paco Garcia » Mon Nov 13, 2006 2:47 pm

Hola

De esta forma se puede copiar toda la ventana.

Code: Select all  Expand view  RUN
#include "fivewin.ch"
function main()
   local oWnd, oBrush
   DEFINE BRUSH oBrush STYLE "NULL"
   syswait(0.3)
   DEFINE WINDOW oWnd FROM 0, 0 TO GetSysMetrics( 1 ), GetSysMetrics( 0 ) PIXEL STYLE WS_POPUP  BRUSH oBrush
   oWnd:Show()
   DibWrite( "screen.bmp", DibFromBitmap( WndBitmap( oWnd:hWnd ) ) )
  // para ver lo capturado 
  ShellExecute( GetActiveWindow() ,nil, cFilePath(GetModuleFileName(GetInstance())) + "screen.bmp",'','',5)
return nil


Si tienes cualquier otro manejador (hWnd) es cuestión de sustituirlo, donde pone oWnd:hWnd pon el manejador.


Un saludo
User avatar
Paco Garcia
 
Posts: 172
Joined: Fri Oct 07, 2005 12:00 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 96 guests