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.