Como capturar a tela como um Print Screen no Delphi?
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; |
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; |
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.Assign(GetPrintScreen);
end;
-
InfusTec
-
7.007 views
- 0 comentários
- 31 de março de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo