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.
Capturar pantalla desde un programa fivewin.
- Andrés González
- Posts: 625
- Joined: Thu Jan 19, 2006 10:45 am
- Location: Mallorca
- Alfredo Arteaga
- Posts: 326
- Joined: Sun Oct 09, 2005 5:22 pm
- Location: Mexico
- Contact:
- Paco Garcia
- Posts: 172
- Joined: Fri Oct 07, 2005 12:00 pm
- Contact:
una idea
Hola
De esta forma se puede copiar toda la ventana.
Si tienes cualquier otro manejador (hWnd) es cuestión de sustituirlo, donde pone oWnd:hWnd pon el manejador.
Un saludo
De esta forma se puede copiar toda la ventana.
Code: Select all
#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
Un saludo