【问题标题】:reusing Internet Explorer COM Automation Object重用 Internet Explorer COM 自动化对象
【发布时间】:2023-03-08 21:25:01
【问题描述】:

我正在使用 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 的多个实例。

【问题讨论】:

    标签: internet-explorer com vbscript automation


    【解决方案1】:

    试试这个:

    
    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

    【讨论】:

    • 在使用上面的代码 sn-p 时,我得到了一个不同的错误。我在该行收到“对象创建失败”错误。这个对象会发生这种情况的一些典型原因是什么?
    • 对象未创建。您是使用 createObject 来创建 Internet Explorer 对象,还是只是尝试使用开放实例?
    • 我正在尝试使用现有的“打开”实例。
    • 我在回答中添加了一些建议;如果这些不起作用,我将不得不研究更多迂回的解决方案。
    猜你喜欢
    • 2020-07-11
    • 2010-10-16
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多