Ir ao conteúdo
  • Cadastre-se

VBA maximizar janela do Internet Explorer


naguall

Posts recomendados

  Bom dia, 

 

estou desenvolvendo uma macro para abrir um endereço da intranet do meu trabalho e fazer uma espécie de login (ao abrir o endereço aparece uma droplist e o login consiste basicamente em clicar em um dos itens da droplist).

 

A princípio estava tentando selecionar a opção do droplist diretamente, mas acabei desistindo porque não estava conseguindo selecionar a droplist e a opção e resolvi tentar controlar o mouse.

 

Estava indo tudo bem e consegui fazer o que queria (clicar na opção da droplist). O problema é que a janela do explorer não esta abrindo maximizada e com isso a janela por vezes abre em posições diferente o que me causa problema, pois não consigo mais clicar onde desejava.

 

Queria saber como fazer a janela do explorer abrir sempre maximizada. Podem me ajudar?


A única maneira que vi de fazer é usando API's, mas ainda não tenho prática com a utilização das mesmas (talvez por isso da minha dificuldade).

 

Por enquanto meu código está assim:

 

 

Option Explicit
 
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Const SW_MAXIMIZE = 3
 
Sub AcessaPagina()
    
    
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
 
    ie.Visible = True
 
    While ie.Busy
    Wend
    
 
    ShowWindow , SW_MAXIMIZE
    
    Call SingleClicks
 
End Sub
 
 
Private Sub SingleClicks()
    SetCursorPos 432, 335 'x and y position
    mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
    
    SetCursorPos 350, 345 'x and y position
    mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

Anteriormente estava tentando usar o código para selecionar diretamente a opção do dropbox (sem controlar o mouse)

 

    'IE.Document.All.Item("Autenticação do Windows").Item(1).Selected = True
    'IE.Document.All.Item("ctl00$PlaceHolderMain$ClaimsLogonSelector").Item(1).Selected = True
    'IE.Document.All.Item(1).Item(2).Selected = True
 
mas nenhuma das formas estava funcionando...
 
 
qualquer uma das duas soluções me ajuda!
Link para o comentário
Compartilhar em outros sites

Tente isso, em um modulo: 

 

Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _
            (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
 
Global Const SW_MAXIMIZE = 3
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
 
Sub teste()
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
apiShowWindow objIE.hwnd, SW_MAXIMIZE
objIE.navigate "http://www.google.com"
End Sub
 
Abs,
Basole.
Link para o comentário
Compartilhar em outros sites

valeu mesmo cara. Funcionou perfeitamente. 

 

Sem querer abusar, mas já abusando será que você teria algum material que explique todas as funcoes API ou que me ajude nesse começo a me familiarizar mais com as declarações de API e como utilizá-las?

 

Novamente, muito obrigado!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...