Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2013
Segator Segator is offline
Registrado
NULL
 
Registrado: nov 2013
Posts: 8
Poder: 0
Segator Va por buen camino
Thumbs up Solucion final.

Disculpen si los enrede un poco en el post de arriba, pero ya logre capturar cada monitor de forma independiente, gracias a escafandra, hice una simplificacion del codigo y otros pequeños cambios y asi es como quedo:

Código Delphi [-]
function monitortobmp(pantalla:TMonitor);
var 
DC:HDC;
    bmp, hbmp:HBitMap; 
    mw,     mh,     mt,     ml:integer;
    imagen:TBitMap; 
    mirror:boolean;
begin
    mw:=pantalla.Width;
    mh:=pantalla.Height;
    mt:=pantalla.Top;
    ml:=pantalla.Left;
    mirror:=false;
if pantalla.MonitorNum <> 0 then
   begin 
 if mt = 0 then
 begin 
   mirror:=true;
   ShowMessage('El monitor '+inttostr(pantalla.MonitorNum+1)+' no existe o es un espejo');
   end;
 end;
if not mirror then
  begin
    DC:=CreateCompatibleDC(0);
    bmp:=CreateCompatibleBitmap(GetDC(0), mw, mh);
    hbmp:=SelectObject(DC,bmp);
    BitBlt(DC, 0, 0, mw, mh, GetDC(0), ml,mt, SRCCOPY + $40000000);
    SelectObject(DC, hbmp);
    DeleteObject(DC);
    imagen:=TBitMap.Create;
    imagen.Handle:=bmp;
    imagen.SaveToFile('pantalla.bmp');
   {elimine la variable n porque yo aqui en ves de salvar el bmp se lo asigne a un componente visual Imagen
     y luego este lo salvo con un numero incremental}
    imagen.Free;
 end;
end;

luego pueden saber si hay mas de un monitor disponible con:
Código Delphi [-]
screen.MonitorCount;

y llamar a la funcion asi:
Código Delphi [-]
monitortobmp(screen.Monitors[x].Handle);

donde x es el numero del monitor al que quieran capturar
espero les sirva a todos, saludos.

Última edición por ecfisa fecha: 05-12-2013 a las 16:05:22. Razón: Corregir etiquetas [DELPHI] en modo WYSIWYG
Responder Con Cita
  #2  
Antiguo 22-04-2014
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 104
Poder: 14
FENIXadr Va por buen camino
Buenisimoo me fue de mucha utilidad!!!...

Muchas gracias..

Saludos.
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

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 13:52:43.


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