Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

url IE powershell

33 réponses
Avatar
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.

10 réponses

1 2 3 4
Avatar
Méta-MCI \(MVP\)
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
Avatar
Gilles LAURENT [MVP]
"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 :
<http://glsft.free.fr/index.php?option=com_content&task=view&idC&Itemid" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://glsft.free.fr/index.php?option=com_content&task=view&idC&Itemid(>

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

Avatar
Robby
oui, j'aimerai afficher toutes les URLs.

"Méta-MCI (MVP)" a écrit dans le message
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





Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
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
Avatar
Robby
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]" a
é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






Avatar
Jacques Barathon [MS]
"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

Avatar
Méta-MCI \(MVP\)
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
Avatar
Méta-MCI \(MVP\)
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
Avatar
Jacques Barathon [MS]
"Méta-MCI (MVP)" wrote in message
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

Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
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

1 2 3 4