dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

Como tirar uma ScreenShot do WebBrowser.

Seguindo em uma série de dicas sobre o WebBrowser, hoje
vamos analisar como fotografar o mesmo, ou em outras palavras,
tirar um ScreenShot do WebBrowser.

Uma simples procedimento resolve o problema, veja o código:

Antes lembra-se de dar uses das units necessárias:

Winapi.ActiveX, SHDocVw, Winapi.Windows e Vcl.Graphics.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
procedure WebBrowserScreenShot(const wb: TWebBrowser;
  const fileName: TFileName);
var
  viewObject: IViewObject;
  r: TRect;
  bitmap: TBitmap;
begin
  if wb.Document <> nil then
  begin
    wb.Document.QueryInterface(IViewObject, viewObject);
    if Assigned(viewObject) then
      try
        bitmap := TBitmap.Create;
        try
          r := Rect(0, 0, wb.Width, wb.Height);
 
          bitmap.Height := wb.Height;
          bitmap.Width := wb.Width;
 
          viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle,
            bitmap.Canvas.Handle, @r, nil, nil, 0);
 
          with TJPEGImage.Create do
            try
              Assign(bitmap);
              SaveToFile(fileName);
            finally
              Free;
            end;
        finally
          bitmap.Free;
        end;
      finally
        viewObject._Release;
      end;
  end;
end;

Exemplo de uso:
Capturando a tela do WebBrowser e salvando na pasta do executável.

1
2
3
4
5
procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowserScreenShot(WebBrowser1, ExtractFilePath(Application.ExeName) +
    'meu_navegador.jpg');
end;

Espero que seja útil a todos!

Qualquer dúvida ou sugestão, deixe nos comentários do post.

  • Giovani Da Cruz
  • 0 comentários
  • 13 de novembro de 2016

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados