Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 04-12-2013
Segator Segator is offline
Registrado
NULL
 
Registrado: nov 2013
Posts: 8
Poder: 0
Segator Va por buen camino
Talking Como capturar varias pantallas de forma independiente [Solucionado]

escafandra muchas gracias por el aporte, gracias a tu codigo me dio la idea para encontrar una solucion en parte teorica en parte
practica que comento aqui para que le sirva a otros exactamente asi como esta tu codigo sale en negro la imagen cuando
captura el segundo monitor, pero se me ocurrio algo: y si capturo una imagen del "monitor1" pero con las cordenadas del monitor2?
y lo pongo entre comillas pues ya no seria la imagen del monitor1, en una pequeña prueba en la practica funciono
esto:
Código Delphi [-]
var
  W, H: integer;
  DC: HDC;
  bmp, oldbmp: HBITMAP;
  Bitmap: TBitmap;
begin
  W:= lprcMonitor.Right - lprcMonitor.Left;
  H:= lprcMonitor.Bottom - lprcMonitor.Top;
  DC:= CreateCompatibleDC(0);
  bmp:= CreateCompatibleBitmap(hdcMonitor, W, H);
  oldbmp:= SelectObject(DC, bmp);
  BitBlt(DC, 0, 0, W, H, hdcMonitor, W, H, SRCCOPY + $40000000);
  SelectObject(DC, oldbmp);
  DeleteObject(DC);
  Bitmap:= TBitmap.Create;
  Bitmap.Handle:= bmp;
  Bitmap.SaveToFile(Format('panta%d.bmp', [n]));
  inc(n);
  Bitmap.Free;
  Result:= true;
{$J-}
end;

claro que yo sabia que el monitor 2 esta justo a la derecha del 1 y que tambien tenia la misma resolucion
pero esto se podia resolver con una funcion llamada MonitorFromPoint y le pasamos la resolucion de ancho de nuestro actual
monitor1 +1 como cordenada horizontal para saber si hay un monitor a la derecha y claro 0 en la cordenada vertical, lo mismo
podia ser si el monitor esta a la izquierda pero esta ves le restamos -1 o -5 por si existe algun borde digo yo, si el monitor esta
debajo le pasamos el alto de nuestro +1 como cordenada vertical y 0 horizontal y lo mismo a la inversa si esta arriba, esto es en
parte teoria pero lo llevare a la practica en un codigo completo y si funciona lo pondre aqui pa tados, saludos.

Última edición por ecfisa fecha: 04-12-2013 a las 17:36:54. Razón: Corregir etiquetas [DELPHI] en modo WYSIWYG
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Capturar Pantalla = Pantalla negra DarkDudae Gráficos 8 27-10-2008 12:29:36
Capturar Pantalla Estuardo18 Gráficos 4 27-10-2008 12:25:05
capturar parte de la pantalla gabriel3 Varios 1 21-01-2006 18:09:08
Error al capturar la pantalla!! DarkByte Gráficos 7 28-07-2005 03:16:33
Capturar pantalla pablo Varios 1 07-09-2004 20:15:10


La franja horaria es GMT +2. Ahora son las 08:14:53.


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