VB6 -  Usando o controle WebBrowser - 10 dicas Práticas


Neste artigo vou mostrar como usar o controle WebBrowser no VB6.

O controle webbrowser não é um dos controles que vêm por padrão na caixa de controle.

Para poder usá-lo em seu projeto você terá que incluir o componente na ToolBox. Isso é feito pressionando CTRL+T ou acionando o menu Project e a seguir clicando em Components;

Será aberta a janela Components. Escolha o item Microsoft Internet Controls  e clique em OK;

Você deverá ver na ToolBox o controle WebBrowser adicionado e pronto para uso:

Vou mostrar neste artigo como usar o controle para realizar as seguintes tarefas:

Abra o Visual Basic 6 como administrador, se estiver usando o Windows 7, e no menu File clique em New Project;

Selecione a opção StandardEXE e clique no botão OK;

1 - Navegando para um site

Inclua os seguintes controles no formulário form1.frm arrastando-os a partir da ToolBox:

A seguir clique no botão Navegar e inclua o código abaixo no evento Click do botão de comando:

Private Sub cmdNavegar_Click()

On Error GoTo trata_erro

   WebBrowser1.Navigate Trim(txtURL.Text)
   Exit Sub

trata_erro:
   MsgBox Err.Description
End Sub

Execute o projeto e a seguir digite uma URL válida na caixa de texto e clique no botão Navegar para obter o resultado:

A seguir vejamos as outras tarefas...

2- Abrindo um janela Pop-up do navegador usando o formulário

No evento newWindow2 do WebBrowser inclua o seguinte código:

 Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
    Dim frm As Form1
    Set frm = New Form1
    Set ppDisp = frm.WebBrowser1.Object
    frm.Show
End Sub

3 - Verificar se uma palavra/string é encontrada na página

Inclua um novo botão de comando (Name=cmdLocalizar e Text=Procurar) e um novo controle TextBox(Name=txtCriterio) na base do controle WebBrowser no formulário form1.frm conforme mostra a figura abaixo:

A seguir inclua o seguinte código no evento Click do botão de comando:

Private Sub cmdLocalizar_Click()
    Dim strTexto As String
    strTexto = txtCriterio.Text
    If PaginaWebContem(strTexto) = True Then 
         MsgBox "A página contém o texto "
    Else
         MsgBox "A página não contém esse texto" 
    End If
End Sub

O código da rotina PaginaWebContem() que é chamada para verificar se o texto existe na página é mostrado a seguir:

Private Function PaginaWebContem(ByVal s As String) As Boolean
    Dim i As Long, EHTML
    For i = 1 To WebBrowser1.Document.All.length
        Set EHTML = WebBrowser1.Document.All.Item(i)
          If Not (EHTML Is Nothing) Then
            If InStr(1, EHTML.innerHTML, s, vbTextCompare) > 0 Then
                WebPageContains = True
                Exit Function
        End If
    End If
Next i
End Function

Executando o projeto e informando um texto que existe na página na caixa de texto,  ao clicar no botão Procurar iremos obter o resultado abaixo:

4- Criando uma página ao iniciar

No evento Load do formulário inclua o código a seguir:

Private Sub Form_Load()
      WebBrowser1.Navigate "about:blank"
      criaPagina
End Sub

A rotina criaPagina irá criar manualmente uma página HTML exibindo no controle WebBrowser:

Private Sub criaPagina()
        Dim HTML As String
            '----------código HTML----------
        HTML = "<HTML>" & _
                "<TITLE>Pagina Carrega no evento Load</TITLE>" & _
                "<BODY>" & _
                "<FONT COLOR = BLUE>" & _
                "Este página foi feita  " & _
                "<FONT SIZE = 5>" & _
                "<B>" & _
                "via código por Macoratti.net " & _
                "</B>" & _
                "</FONT SIZE>" & _
                "</BR >" & _
                "www.macoratti.net" & _
                "</FONT>" & _
                "</BODY>" & _
                "</HTML>"
                '----------HTML fim ---------------
        WebBrowser1.Document.Write HTML
End Sub

O resultado pode ser visto na figura a seguir:

5- Usando as funções padrão do controle WebBrowser

Inclua no formulário form1.frm um array de controles CommandButton, para isso inclua um controle no formulário e após selecionar o controle pressione CTRL+C e a seguir CTRL+V. Repita este procedimento até incluir 6 controles CommandButton no topo do formulário.

Será criado um array de controles CommandButton com índice de 0 a 5 todos com o nome Command1.

A seguir defina a propriedade Style de cada controle como 1-Graphical e defina a cor de fundo igual a amarela. A seguir defina a propriedade Text de cada um dos controles na seguinte ordem: Retornar, Avançar, Parar, Atualizar Home e Procurar conforme o leiaute abaixo:

A seguir digite o seguinte código para o evento Click dos botões de comando Command1:

Private Sub Command1_Click(Index As Integer)
    On Error Resume Next
                       
        Select Case Index
            Case 0 'botão Retornar
                WebBrowser1.GoBack 
            Case 1 'Botão Avançar
                WebBrowser1.GoForward 
            Case 2
                WebBrowser1.Stop 'botão Parar
            Case 3
                WebBrowser1.Refresh 'botão atualizar pagina
            Case 4
                WebBrowser1.GoHome 'botão Go to home
            Case 5
                WebBrowser1.GoSearch 'botão Search
        End Select
End Sub

6- Usando as funções avançadas do controle WebBrowser

Agora inclua no formulário form1.frm um array de controles CommandButton, para isso inclua um controle no formulário e após selecionar o controle pressione CTRL+C e a seguir CTRL+V. Repita este procedimento até incluir 4 controles CommandButton no topo do formulário.

Será criado um array de controles CommandButton com índice de 0 a 3 todos com o nome Command2.

A seguir defina a propriedade Style de cada controle como 1-Graphical e defina a cor de fundo igual a azul claro. A seguir defina a propriedade Text de cada um dos controles na seguinte ordem: Imprimir, Visualizar, Configurar e Propriedades conforme o leiaute abaixo:

A seguir digite o seguinte código para o evento Click dos botões de comando Command2:

Private Sub Command2_Click(Index As Integer)
On Error Resume Next
        Select Case Index
            Case 0 'botão Imprimir
               WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT
            Case 1 'Botão Visualizar
                WebBrowser1.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT
            Case 2 'botão Configurar
                WebBrowser1.ExecWB OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT
            Case 3 'botão propriedades
                WebBrowser1.ExecWB OLECMDID_PROPERTIES, OLECMDEXECOPT_DODEFAULT
        End Select
End Sub

7- Controlando o tamanho da fonte usada no Controle WebBrowser

Agora inclua no formulário form1.frm um array de controles CommandButton, para isso inclua um controle no formulário e após selecionar o controle pressione CTRL+C e a seguir CTRL+V. Repita este procedimento até incluir 5 controles CommandButton no topo do formulário.

Será criado um array de controles CommandButton com índice de 0 a 4 todos com o nome Command3. Inclua acima dos controles uma Label com Caption igual a "Tamanho da Fonte".

A seguir defina a propriedade Style de cada controle como 1-Graphical e defina a cor de fundo igual a laranja.

A seguir defina a propriedade Text de cada um dos controles na seguinte ordem: Muito Pequena,Pequena, Média, Grande e Muito Grande conforme o leiaute abaixo:

A seguir digite o seguinte código para o evento Click dos botões de comando Command3:

Private Sub Command3_Click(Index As Integer)
On Error Resume Next
Select Case Index
            Case 0 'Muto pequena
               WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(0), vbNull
            Case 1 'pequena
                WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(1), vbNull
            Case 2 'Media
                WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(2), vbNull
            Case 3 'Grande
                WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(3), vbNull
            Case 4 'Muito Grande
                WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(4), vbNull
        End Select
End Sub

8- Desabilitando comandos do controle WebBrowser

Podemos desabilitar comandos do controle WebBrowser usando o evento CommandStateChange.

No exemplo usado vamos desabilitar os comandos Forward e Return. Para isso inclua o seguinte código no evento CommandStateChange:

Private Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)
Select Case Command
        Case 1 'Avançar
            Command1(0).Enabled = Enable
        Case 2 'Retornar
            Command1(1).Enabled = Enable
    End Select
End Sub

9- Obtendo todos os links das páginas visitadas

Este exemplo mostrar como obter uma lista dos links em uma página visitada.

Você terá que  incluir no seu projeto o componente Microsoft HTML Object Library.

Para isso clique no menu Project -> Components e selecione o componente da lista da janela Components:

A seguir inclua o seguinte código no evento DownloadComplete do componente WebBrowser:

Private Sub WebBrowser1_DownloadComplete()
On Error Resume Next
    'voce precisa adicionar o "Microsoft HTML Object Library"!!!!!!!!!
    Dim HTMLdoc As HTMLDocument
        Dim HTMLlinks As HTMLAnchorElement
            Dim STRtxt As String
    ' Lista os links links.
    On Error Resume Next
        Set HTMLdoc = WebBrowser1.Document
            For Each HTMLlinks In HTMLdoc.links
                STRtxt = STRtxt & HTMLlinks.href & vbCrLf
            Next HTMLlinks
        'Text1.Text = STRtxt
    Open "C:\dados\linksLog.txt" For Append As #1
    Print #1, STRtxt
    Close #1
End Sub

 

Observe que estamos gerando um arquivo texto chamado linksLog.txt na pasta c:\dados que no seu caso deverá ser alterada. Note que podemos exibir os links em uma caixa de texto conforme o código que esta comentado.

10- Usando o componente ProgressBar com o WebBrowser

Para suar o componente ProgressBar com o WebBrowser primeiro temos que incluir o componente Microsoft Windows Commons Controls 6.0 no projeto.

No menu Project -> Components selecione o componente na janela Components;

A seguir a partir da ToolBox selecione e arraste o componente ProgressBar para o formulário form1.frm conforme mostra a figura abaixo:

Agora vamos incluir as linhas de código destacadas em azul no evento Load do formulário form1:

Private Sub Form_Load()
      WebBrowser1.Navigate "about:blank"
      'criaPagina
       ProgressBar1.Appearance = ccFlat
       ProgressBar1.scrolling = ccScrollingSmooth
End Sub

Agora defina o código a seguir no evento ProgressChange do controle WebBrowser:

Private Sub WebBrowser1_ProgressChange(ByVal Progresso As Long, ByVal ProgressoMax As Long)
On Error Resume Next
    If Progresso = -1 Then ProgressBar1.Value = 100
        Me.Caption = "100%"
    If Progresso > 0 And ProgressoMax > 0 Then
        ProgressBar1.Value = Progresso * 100 / ProgressoMax
        Me.Caption = Int(Progresso * 100 / ProgressoMax) & "%"
    End If
    Exit Sub
End Sub

Execute o projeto e veja o resultado:

Simples e prático como só o VB sabe fazer...

Pegue o projeto completo aqui: WebBrowserVB6.zip

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

1Pe 3:1 Semelhantemente vós, mulheres, sede submissas a vossos maridos; para que também, se alguns deles não obedecem à palavra, sejam ganhos sem palavra pelo procedimento de suas mulheres,

1Pe 3:2 considerando a vossa vida casta, em temor.

1Pe 3:3 O vosso adorno não seja o enfeite exterior, como as tranças dos cabelos, o uso de jóias de ouro, ou o luxo dos vestidos,

1Pe 3:4 mas seja o do íntimo do coração, no incorruptível traje de um espírito manso e tranqüilo, que és, para que permaneçam as coisas

1Pe 3:5 Porque assim se adornavam antigamente também as santas mulheres que esperavam em Deus, e estavam submissas a seus maridos;

1Pe 3:6 como Sara obedecia a Abraão, chamando-lhe senhor; da qual vós sois filhas, se fazeis o bem e não temeis nenhum espanto.

           Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti