Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-10-2004
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Cool Capturar ventana activa y guardarla

Holas a todos.

Trabajo con delphi 7.0... en una oportunidad pedi ayuda al foro para capturar la pantalla (desk/escritorio) y guardarlo en un archivo, cosa que llegue hacerlo sin mayores problemas ya que el codigo para este trabajo lo encontre en trucomania.

Ahora me surge otra necesidad.... necesito capturar solo la ventana activa de cualquier aplicacion y guardarlo en un archivo grafico.. si fuera *.jpg sera perfecto.

A la espera de sus aportes, se despide..

Your friend,

StartKill
Lima-Perú
Responder Con Cita
  #2  
Antiguo 14-10-2004
jdangosto jdangosto is offline
Miembro
 
Registrado: jun 2004
Posts: 82
Poder: 20
jdangosto Va por buen camino
Buenas, si te entendí bien quieres capturar las ventanas que se muestran independientemente de lo que exista detras de ellas. Si es así, eso lo puedes lograr con la combinación de las teclas ALT+Print Screen y luego ir a cualquier archivo de edición de gráficos(si trabajas con windows te valdría el paint, el microsoft photo editor, el imaging, etc...) y pegarla como si de un texto se tratara (edición pegar o ctrl+v).

Espero haberte ayudado.

Un saludo
Responder Con Cita
  #3  
Antiguo 14-10-2004
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Tenes razón, la combinacion de teclas funciona correctamente....

Pero lo que quiero es poder hacer esto desde código....

Para mas detalles:

1.-Hay una aplicación "servidor" el recibe ordenes de una aplicacion "cliente" (control-remoto)

2.-El "cliente" envia una orden al "servidor" indicando que capture solo la ventana activa para luego grabarla en un archivo gráfico.

3.-Como mencione antes, tengo la rutina para capturar todo el escritorio..., pero solo necesito la ventana activa.

//-------------------
Razon por la cual necesito hacerlo por codigo ya que no tendria acceso a la otra PC fisicamente para manipular el teclado.

A la espera de sus aportes, comentarios, regalos, maldiciones...

Your Friend,

StartKill
Lima-Perú
Responder Con Cita
  #4  
Antiguo 14-10-2004
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
¿Te sirve esto?


Código:
  (* Rutina para capturar la imaen de la ventana activa *)
  
  var
  	ActiveWnd: HWnd;
  	WinRect: TRect;
  	Bitmap: TBitmap;
  	Canvas: TCanvas;
  
  begin
  	{ Obtener ventana activa }
  	ActiveWnd := GetForegroundWindow();
  
  	{ Obtener dimensiones de la ventana activa }
  	GetWindowRect(ActiveWnd, WinRect);
  
  	{ Crear bitmap con las dimensiones de la ventana activa }
  	Bitmap := TBitmap.Create;
  	Bitmap.Width := WinRect.Right - WinRect.Left;
  	Bitmap.Height := WinRect.Bottom - WinRect.Top;
  
  	{ Obtener un canvas para la ventana activa }
  	Canvas := TCanvas.Create;
  	Canvas.Handle := GetWindowDc(ActiveWnd);
  
  	{ Copiar el canvas de la ventana activa al bitmap }
  	WinRect := Rect(0, 0, Bitmap.Width, Bitmap.Height);
  	Bitmap.Canvas.CopyRect(WinRect, Canvas, WinRect);
  
  	{ Guardar el bitmap en un archivo }
  	Bitmap.SaveToFile('window.bmp');
  
  	{ Liberar recursos }
  	Canvas.Free;
  	Bitmap.Free;
  end;
Bye
Responder Con Cita
  #5  
Antiguo 15-10-2004
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Thumbs up

Hola, keyboy--- gracias por este codigo funciono a la perfeccion.

jdangosto, si no habia forma de hacer en codigo estaba pensando en llenar el buffer de teclado con la combinacion de teclas que mecionabas, luego.....--gracias a ti tambien

Your friend,

StartKill
Lima-Perú

Nota: Señores moderadores, ayer respondi a este hilo---dando las gracias a keyboy jdangosto, pero veo que yo no he grabado bien o se han perdido datos en la pagina???
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:02:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi