Beiträge

12.09.2010

Internetexplorer - GetObject!

Immer wieder taucht die Frage auf, ob man auf eine laufende Internetexplorerinstanz aufsetzen kann. Man(n) kann das so schreiben "Set objIEApp = GetObject("", "InternetExplorer.Application")" - das bringt keinen Fehler mehr, startet aber bei jedem Aufruf eine neue Instanz - ist also auch keine Lösung. GetObject schaut in der ROT (RunningObjectTable) nach ob sich ein Object dort registriert hat - der IE macht das wohl nicht. Folgender Code bietet eine Alternative:

Option Explicit
Public Sub Test()
Dim objWindow As Object
Dim objIEApp As Object
Dim objShell As Object
Dim objItem As Object
On Error GoTo Fin
Set objShell = CreateObject("Shell.Application")
Set objWindow = objShell.Windows()
For Each objItem In objWindow
If LCase(objItem.FullName Like "*iexplore*") Then
Set objIEApp = objItem
End If
Next objItem
If objIEApp Is Nothing Then
Set objIEApp = CreateObject("InternetExplorer.Application")
objIEApp.Visible = True
End If
objIEApp.Navigate2 "http://vbanet.blogspot.com/"
Fin:
If Err.Number <> 0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
Set objWindow = Nothing
Set objShell = Nothing
End Sub