2009-06-02 24 views
5

Estoy utilizando macros de VBScript para utilizar el objeto de automatización COM InternetExplorer.Application y estoy luchando con la reutilización de una instancia existente de este objeto.reutilizando el objeto de automatización COM de Internet Explorer

Por lo que he leído, debería ser capaz de utilizar el método GetObject() en vbscript para agarrar una instancia existente de este objeto.

Cuando ejecuto el siguiente código, aparece el mensaje "Falló la creación del objeto: error de sintaxis de moniker".

¿Mi problema es realmente sintaxis?

¿Mi problema es cómo estoy tratando de usar este objeto?

o puede lo que estoy tratando de lograr simplemente no se debe hacer?

Código:

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 

Además, no tengo ningún problema de ejecutar el CreateObject() que abre una nueva ventana de Internet Explorer y navega a donde quiero, pero yo preferiría no tener la macro se abren múltiples instancias de Internet Explorer.

Respuesta

4

intenta esto:


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

* Note la coma antes de "InternetExplorer.Application"

EDIT: Prueba esto:


Dim IE As SHDocVw.InternetExplorer 

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

También puede probar esto:


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") 

EDITAR:
Lo que estás intentando puede no ser posible, échale un vistazo a esto. http://support.microsoft.com/kb/239470

+0

Pude obtener un error diferente al usar el fragmento de código anterior. Aparece un error "Error de creación de objeto" en esa línea. ¿Cuáles serían algunas de las razones típicas por las que esto sucedería para este objeto? – Zombie8

+0

El objeto no está creado. ¿Estás utilizando createObject para crear un objeto de Internet Explorer, o simplemente tratando de usar una instancia abierta? – Tester101

+0

Estoy tratando de usar una instancia "abierta" existente. – Zombie8

Cuestiones relacionadas