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.