2011-09-13 2 views
2

La ligne de code suivante renvoie plusieurs objets InternetExplorer même si une seule fenêtre du navigateur est ouverte (aucun onglet) et qu'un seul processus iexplore.exe est en cours d'exécution. Comment puis-je obtenir uniquement l'objet fenêtre de navigateur ouvert?SHDocVw.InternetExplorer Dans shellWindows renvoyant un trop grand nombre d'objets

For Each ie As SHDocVw.InternetExplorer In shellWindows

+1

Vous obtiendrez également une fenêtre ouvrez l'Explorateur Windows. Une chose qui peut fonctionner est d'essayer de convertir le fichier ie.Document en mshtml.IHtmlDocument, qui ne fonctionnera que pour une instance IE. –

Répondre

2

Cela peut aider

Dim objShellWindows As New SHDocVw.ShellWindows 
Dim rVal As SHDocVw.InternetExplorer 
    For Each rVal In objShellWindows 
     Debug.Print TypeName(rVal.Document) 
     If TypeName(rVal.Document) = "HTMLDocument" Then 
      If rVal.Name = "Windows Internet Explorer" Then 
       rVal.Visible = False 
       rVal.Visible = True 
       Set ie = rVal 
       ie.Quit 
       Set ie = Nothing 
      End If 
     End If 
    Next rVal