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!
|