2009-06-02 10 views
5

J'utilise des macros VBScript pour utiliser l'objet d'automatisation COM InternetExplorer.Application et je rencontre des difficultés pour réutiliser une instance existante de cet objet. D'après ce que j'ai lu, je devrais pouvoir utiliser la méthode GetObject() dans vbscript pour récupérer une instance existante de cet objet.Réutilisation de l'objet d'automatisation COM Internet Explorer

Lorsque j'exécute le code suivant, je reçois un message "Échec de création d'objet - erreur de syntaxe moniker".

Est-ce que mon problème est vraiment la syntaxe?

Mon problème est de savoir comment j'essaie d'utiliser cet objet?

ou est-ce que ce que j'essaye d'accomplir ne peut tout simplement pas être fait?

code:

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 

Aussi, je n'ai aucun problème en cours d'exécution du CreateObject() qui ouvre une nouvelle fenêtre Internet Explorer et navigue où je veux, mais je préférerais ne pas avoir la macro ouvrir plusieurs instances d'Internet Explorer.

Répondre

4

Essayez ceci:


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

* Notez la virgule avant "InternetExplorer.Application"

EDIT: Essayez ceci:


Dim IE As SHDocVw.InternetExplorer 

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

Vous pouvez aussi essayer ceci:


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

EDIT:
Ce que vous essayez peut-être pas possible, jetez un oeil à cela. http://support.microsoft.com/kb/239470

+0

J'ai été en mesure d'obtenir une erreur différente lors de l'utilisation de l'extrait de code ci-dessus. Je reçois une erreur "Object Creation Failed" sur cette ligne. Quelles seraient les raisons typiques de ce qui se passerait pour cet objet? – Zombie8

+0

L'objet n'est pas créé. Utilisez-vous createObject pour créer un objet Internet Explorer ou simplement essayer d'utiliser une instance ouverte? – Tester101

+0

J'essaie d'utiliser une instance "ouverte" existante. – Zombie8