Como capturar tela com delphi

Este breve artigo irá explicar-lhe como capturar conteúdo de tela para um ficheiro JPEG a partir do programa Delphi.

Primeiro crie um novo projeto. (Presumo que você já tem experiência com programação Delphi, portanto não vou entrar em detalhes sobre como criar um projeto Delphi.) Salve-o, por exemplo, como ScrnCap. Renomeie a forma principal como frmCapture. Adicione um controle TButton e um TSaveDialog. Renomeie o botão de controle como btnStartCapture e altere suas propriedades de Caption para “Capture”. Renomeie diálogo salvar como dlgSaveCapture.

Crie uma nova unidade e a renomeie de uscreencap.pas. Adicione o seguinte código:

procedimento CaptureScreenShot (acapture: TBitMap);

var c: TCanvas;

r: TRect;

começar

c: = TCanvas.Create;

c.Handle: = GetWindowDC (GetDesktopWindow);

tentar

r: = Retâng (0,0, tela.largura, tela.altura);

acapture.Largura: = tela.Largura;

acapture.Altura: = tela.Altura;

acapture.Canvas.CopiarRetâng (r, c, r);

finalmente

LibertarDC (0, c.tratamento);

c.Grátis;

fim;

fim;

procedimento CaptureScreenShotJPEG (ajpeg: TJPEGImage);

var abmp: TBitmap;

começar

abmp: = TBitmap.Create;

tentar

CaptureScreenShot (abmp);

ajpeg.Atribuir (abmp);

finalmente

abmp.Grátis;

fim;

fim;

Não se esqueça de adicionar a unidade jpeg.pas em sua cláusula de usos na parte da interface da unidade. Isto é, onde a classe TJPEGImage é descrita. Guardá-lo quando tiver terminado.

Agora, em sua unidade principal de aplicação onde a forma principal reside, adicione o botão de tratamento de eventos OnClick. Preencha o código exatamente como exibido em baixo:

procedimento TfrmCapture.btnStartCaptureClick (Remetente: TObject);

var ajpeg: TJPEGImage;

começar

ajpeg: = TJPEGImage.Create;

tentar

CaptureScreenShotJPEG (ajpeg);

se dlgSaveCapture.Execute o

começar

ajpeg.SaveToFile (dlgSaveCapture.Nome do arquivo);

fim;

finalmente

ajpeg.Grátis;

fim;

fim;

Não se esqueça de incluir a unidade uscreencap.pas e jpeg.pas em sua cláusula de usos. Crie e execute o projeto. Cada vez que você clicar no botão “capture”, a tela é guardada em arquivo JPEG.