url IE powershell
Le
Robby

Bonjour,
Avec powershell, en gwmi.
Comment afficher l'URL d'une page de mon browser IE ?
est-ce avec win32_process ?
ou une autre classe ?
Merci d'avance,
Robby.
Avec powershell, en gwmi.
Comment afficher l'URL d'une page de mon browser IE ?
est-ce avec win32_process ?
ou une autre classe ?
Merci d'avance,
Robby.
Tu veux dire l'URL actuellement utilisé, ou faire afficher par IE l'URL
de ton choix ?
Dans le premier cas, que doit-on faire, s'il y a plusieurs instances
d'IE ouvertes ? Afficher toutes les URL ?
@+
Michel Claveau
Bonjour,
En VBScript à l'aide de la console WSH Shell :
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"Méta-MCI (MVP)" de news: 47fdeb03$0$874$
En powershell, je n'ai pas regardé.
Mais, avec Python (ou avec PeJBshell ; ou avec Ponx), je fais ça :
import win32com.client
for instance in
win32com.client.Dispatch('{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'):
print "URL:",instance.LocationURL
Ce qui me donne la liste de TOUTES les URL d'Internet-Explorer
(instances multiples, instances cachées (invisibles), onglets multiples,
fichiers/URL locaux, etc.)
@-salutations
Michel Claveau
Mais je suis pas trop dans le script, avec le powershell je debute alors les
Python...je ne connais pas.
Comment ca marche Python ? que faut-il , une interface qui lance le
programme ?
Est-ce que ton script fonctionne pour les PCs distants ?
Robby;
"MCI (ex do ré Mi chel la si do) [MVP]" écrit dans le message de news:
Vu le nom de la propriété affichée, j'imagine que l'objet au nom imbittable
:-) utilisé par Michel est le même que j'instancie via Shell.Application
dans mon autre exemple en PowerShell (voir ma réponse sur l'autre fil
consacré à la même discussion).
Jacques
Le truc "imbittable", c'est le CLSID d'Internet-Explorer (plus
exactement de "Internet.Application").
Une particularité de PyWin32 (l'extension Windows de Python), c'est que,
si on utilise le CLSID, ça se connecte sur les instances existantes,
alors que , si on utilise la chaîne "Internet.Application", ça lance une
nouvelle session.
Une différence avec ton script PowerShell, c'est que, là, on est
connecté. On peut donc piloter, faire ce que l'on veut, avec les
instances (les fermer, déplacer, les rendre visibles/invisibles, accéder
au contenu (DOM), le changer, etc.)
Par contre, pas d'accès distant, à moins de passer par DCOM, qui
nécessite d'être configuré (sur le poste distant).
@+
Michel Claveau
Python est un langage à part entière. Il n'a rien à voir avec PowerShell
(même si on peut faire des passerelles).
Pour ce script, pas d'accès distant, à moins de passer par DCOM, qui
nécessite d'être configuré (sur le poste distant). Mais, à ce moment là,
autant installer Python sur le poste distant, et utiliser un package
d'objets distribués (Pyro, par exemple). Cela permet (entre autre) de
définir localement des scripts qui s'exécuteront à distance, avec retour
local.
Une autre possibilité serait de faire un serveur XMLRPC ; c'est assez
simple. Mais, il faut avoir installé Python des deux côtés.
@-salutations
Michel Claveau
Bon à savoir. Je serais curieux de voir quelle API est utilisée dans la
cuisine de PyWin32, parce que la méthode .Net
[System.Runtime.InteropServices.Marshal]::GetActiveObject() qui marche très
bien avec d'autres objets (notamment les applis Office) ne marche pas avec
Internet Explorer... Dommage.
Jacques
En fait, j'avais déjà remarque des limitations (volontaires) dans le
pilotage de certains objets COM, dont Internet-Explorer.
Une autre limitation, c'est que PowerShell ne gère pas le "late-binding"
(liaison tardive des méthodes / propriétés d'un objet COM). En fait PS
ne sait travailler qu'avec les objets COM ayant une TLB (Type Library).
Heureusement, j'ai trouvé un moyen simple (et tout bête) de contourner
cette limitation. C'est de passer par un pont. Perso, j'utilise
MSScriptControl.ScriptControl et JScript (on pourrait utiliser
VBscript).
Du coup, je contourne la presque totalité des limitations.
Toutefois, c'est un peu délicat à donner, comme réponse dans un
newsgroup...
@-salutations
Michel Claveau