重用Internet Explorer COM自动化对象

时间:2009-06-02 20:36:38

标签: internet-explorer com vbscript automation

我正在使用VBScript宏来利用InternetExplorer.Application COM自动化对象,我正在努力重用此对象的现有实例。

根据我的阅读,我应该能够使用vbscript中的GetObject()方法来获取该对象的现有实例。

当我执行以下代码时,我得到“对象创建失败 - moniker语法错误”。

我的问题真的是语法吗?

我的问题是我如何尝试使用此对象?

或者我想要完成的事情还没有完成?

代码:

Dim IEObject as object

Sub Main  
  Set IEObject =  GetObject( "InternetExplorer.Application" )

  'Set the window visable
  IEObject.Visible = True

  'Navigate to www.google.com
  IEObject.Navigate( "www.google.com" )
End Sub

此外,我运行CreateObject()没有问题,它打开了一个新的Internet Explorer窗口并导航到我想要的位置,但我宁愿不让宏打开多个Internet Explorer实例。

1 个答案:

答案 0 :(得分:5)

试试这个:


Set IEObject =  GetObject( ,"InternetExplorer.Application" )

*注意“InternetExplorer.Application”之前的逗号

编辑: 试试这个:


Dim IE As SHDocVw.InternetExplorer

Set IE = GetObject(,"InternetExplorer.Application")

你也可以试试这个:


Dim ShellApp
Set ShellApp = CreateObject("Shell.Application")
Dim ShellWindows
Set ShellWindows = ShellApp.Windows()
Dim i
For i = 0 To ShellWindows.Count - 1
    If InStr(ShellWindows.Item(i).FullName, "iexplore.exe") <> 0 Then
        Set IEObject = ShellWindows.Item(i) 
    End If
Next
IEObject.Navigate2("http://www.google.com")

编辑:
你正在尝试的可能是不可能的,看看这个。 http://support.microsoft.com/kb/239470