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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Méta-MCI \(MVP\)
Le #2706921
Bonjour !

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
Gilles LAURENT [MVP]
Le #2711191
"Robby" wrote:

Bonjour,


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 ?


En VBScript à l'aide de la console WSH Shell :

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr

Robby
Le #2714261
oui, j'aimerai afficher toutes les URLs.

"Méta-MCI (MVP)" de news: 47fdeb03$0$874$
Bonjour !

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





MCI \(ex do ré Mi chel la si do\) [MVP]
Le #2715841
Re !

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
Robby
Le #2782481
Merci pour ta reponse,
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:
Re !

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






Jacques Barathon [MS]
Le #2782461
"MCI (ex do ré Mi chel la si do) [MVP]" wrote in message news:
Re !

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


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

Méta-MCI \(MVP\)
Le #2784071
Salut !

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
Méta-MCI \(MVP\)
Le #2784061
Bonjour !

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
Jacques Barathon [MS]
Le #2785571
"Méta-MCI (MVP)" news:47ff3f4e$0$897$
Salut !

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


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

MCI \(ex do ré Mi chel la si do\) [MVP]
Le #2787131
Re !

GetActiveObject() ... ne marche pas avec Internet Explorer


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

Publicité
Poster une réponse
Anonyme