Ver Mensaje Individual
  #1  
Antiguo 12-11-2009
snakesskaters snakesskaters is offline
Registrado
 
Registrado: nov 2009
Posts: 8
Reputación: 0
snakesskaters Va por buen camino
Código para hacer una captura de pantalla

Tengo el siguiente código que hace una captura de pantalla de la aplicación que este por debajo del form:

procedure TForm1.timer3Timer(Sender: TObject);
var handlePantalla : hdc;

begin

//ocultamos el formulario de la
//aplicación para que no aparezca
hide;

//image6.autosize := false;
//sleep(1000); //esperamos un segundo


image6.picture := nil; //eliminamos el contenido del image1 actual

//establecemos el tamaño de image1 al tamaño de la resolución de la pantalla
/// image6.SetBounds(0, 0, screen.width, screen.height);

handlePantalla := GetDesktopWindow; //obtenemos el handle de la pantalla

//copiamos la captura a image1, mediante la función BitBlt
BitBlt(image6.Canvas.handle, 0, 0, screen.width, screen.Height,
getdc(handlePantalla), 0, 0, srcCopy);

ReleaseDC(0, handlePantalla); //liberamos el objeto

show;
image6.autosize := true;



timer3.Enabled := false;
end;
-------------------------------------

El problema es que me guarda una imagen que es una porción de un cuarto de lo que en realidad es la imagen real. Me podéis decir como puedo modificar el código para que la imagen que muestro en un "image6" de la form sea proporcional. He probado con proportional := true. El código original no es mio.

Gracias!
Responder Con Cita