



Alguma vez você já teve a ideia de tirar um Print Screen automaticamente?
Capturar a tela automaticamente pode ser um recurso interessante
para a montagem de logs de erros de sistema, por exemplo.
Esta dica mostra uma função que captura a tela para um Bitmap.
É necessário estar declarado Graphics, Windows na seção uses,
em versões unicode declare Vcl.Graphics, Winapi.Windows
Abaixo segue o código fonte da função:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function GetPrintScreen() : TBitmap; var vHDC : HDC; vCanvas : TCanvas; begin Result := TBitmap.Create; Result.Width := Screen.Width; Result.Height := Screen.Height; vHDC := GetDC(0); vCanvas := TCanvas.Create; vCanvas.Handle := vHDC; Result.Canvas.CopyRect( Rect(0, 0, Result.Width, Result.Height), vCanvas, Rect(0, 0, Result.Width, Result.Height)); vCanvas.Free; ReleaseDC(0, vHDC); end; |
Exemplo de uso:
Este exemplo captura a tela e carrega em um TImage.
Crie um formulário um um TImage e um TButton e no clique do
botão deixe conforme o exemplo abaixo:
1 2 3 4 | procedure TForm1.Button1Click(Sender: TObject); begin Image1.Picture.Assign(GetPrintScreen); end; |