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 de Delphi.) Salve-a, por exemplo, como ScrnCap. Renomeie principal forma como frmCapture. Adicione um TButton e um controlo TSaveDialog. Renomeie como btnStartCapture botão de controlo e alterar o seu Caption propriedades para 'Capture'. Renomeie diálogo Salvar como dlgSaveCapture.
Criar uma nova unidade e renomear é tão uscreencap.pas. Adicione o seguinte código:
procedimento CaptureScreenShot (acapture: TBitMap);
var c: TCanvas;
r: TRect;
começo
c: = TCanvas.Create;
c.Handle: = GetWindowDC (GetDesktopWindow);
tentar
r: = Retâng (0,0, screen.width, screen.height);
acapture.Width: = screen.Width;
acapture.Height: = screen.Height;
acapture.Canvas.CopyRect (r, c, r);
finalmente
ReleaseDC (0, c.handle);
c.Free;
fim;
fim;
procedimento CaptureScreenShotJPEG (ajpeg: TJPEGImage);
var abmp: TBitmap;
começo
abmp: = TBitmap.Create;
tentar
CaptureScreenShot (abmp);
ajpeg.Assign (abmp);
finalmente
abmp.Free;
fim;
fim;
Não se esqueça de adicionar jpeg.pas unidade utiliza na cláusula de unidade interface parte. Isto é onde TJPEGImage classe é declarada. Guardá-lo quando tiver terminado.
Agora, em sua principal aplicação unidade onde reside a principal forma, adicionar botão acontecimento OnClick handler. Preencha o código exatamente como ele está em baixo:
procedimento TfrmCapture.btnStartCaptureClick (Sender: TObject);
var ajpeg: TJPEGImage;
começo
ajpeg: = TJPEGImage.Create;
tentar
CaptureScreenShotJPEG (ajpeg);
se o dlgSaveCapture.Execute
começo
ajpeg.SaveToFile (dlgSaveCapture.Filename);
fim;
finalmente
ajpeg.Free;
fim;
fim;
Não se esqueça de incluir uscreencap.pas e jpeg.pas unidade utiliza em sua cláusula. Crie e execute o projeto. Cada vez que você clickcapture botão, o ecrã é guardada em arquivo JPEG.


Delicious
Digg
Google
Yahoo