重复使用Internet Explorer COM自动化对象

6
我正在使用VBScript宏来利用InternetExplorer.Application COM自动化对象,但我在重用此对象的现有实例方面遇到了困难。
据我所知,我应该能够使用vbscript中的GetObject()方法来抓住此对象的现有实例。
当我执行以下代码时,我会收到“对象创建失败-记号语法错误”的错误消息。
我的问题真的是语法吗?
我的问题是我如何尝试使用此对象吗?
还是我想要完成的事情无法完成?
代码:
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个回答

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


当我使用上面的代码片段时,我能够得到一个不同的错误。在那一行上,我会收到一个“对象创建失败”的错误。这个对象出现这种情况的典型原因是什么? - Zombie8
对象未被创建。您是在使用createObject来创建Internet Explorer对象,还是尝试使用已打开的实例? - Tester101
我正在尝试使用现有的“开放”实例。 - Zombie8
我在我的答案中添加了一些更多的建议;如果这些不起作用,我将不得不调查更多迂回的解决方案。 - Tester101

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接