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

HTA, IE et message ActiveX (Jean ? d'autres intéressés ?)

4 réponses
Avatar
Méta-MCI
Dear Jean!

How you know, it's not possible to....
Heu, désolé, j'avais oublié qu'ici, on parlait français !



Cher Jean !

Les vacances ont été profitables. En effet, j'ai trouvé un moyen de lancer
(des fenêtres) Internet-Explorer avec des ActiveX (ou des serveurs COM),
sans avoir de message d'avertissement.

C'est très simple : il suffit d'utiliser un HTA, qui lance, via
OLE-Automation, une fenêtre invisible d'Internet-Explorer, se connecte
dessus, lui crée une variable (au niveau window), et lui affecte (lui
injecte) un objet, en l'occurrence l'ActiveXObject du HTA appelant.

J'ai testé, avec succès, Ponx, WSH, ou AutoItX (version ActiveX d'AutoIt).

Certes, il faut laisser ouvert le HTA ainsi que la fenêtre
Internet-Explorer. Mais, heureusement, un HTA a la possibilité de ne pas
avoir d'icône dans la barre des tâches ; il suffit donc qu'il s'auto-déplace
en dehors de l'écran, pour quasi disparaître. Quand à la fenêtre
Internet-Explorer, le fait de l'ouvrir en invisible fait disparaître l'icône
de la barre des tâches.

Cependant, j'ai effectué des tests de performances. Et, là, c'est moins
bien. Comparé à un appel direct, passer par un "pont" Internet-Explorer+HTA,
c'est 5 fois plus lent. J'ai obtenu 0,5 milliseconde par appel, contre 0,1
en connexion directe.

Néanmoins, la persistance, et la possibilité d'avoir plusieurs clients sur
le même objet COM, compensent largement ce petit inconvénient.

Entre autre possibilité, j'ai testé l'accès à un composant COM depuis un
batch (avec persistance, je le rappelle).

Cela devrait aussi permettre à Power-Shell d'accéder à des serveurs COM
dynamiques, et peut-être de simuler un serveur COM en power-shell (sous
réserve d'expérimentation).


@+

Michel Claveau

4 réponses

Avatar
Jean
Dear Jean!

How you know, it's not possible to....
Heu, désolé, j'avais oublié qu'ici, on parlait français !



... enfin ... presque ... une fois :-)



Cher Jean !

Les vacances ont été profitables.


J'ai vu ça :-)

............
Quand à la
fenêtre Internet-Explorer, le fait de l'ouvrir en invisible fait
disparaître l'icône de la barre des tâches.



Il y a peut être moyen d'utiliser une iframe dans le hta à la place de
l'instance InternetExplorer.Application ...

.............
Néanmoins, la persistance, et la possibilité d'avoir plusieurs clients sur
le même objet COM, compensent largement ce petit inconvénient.



Je le pense aussi :-)

Entre autre possibilité, j'ai testé l'accès à un composant COM depuis un
batch (avec persistance, je le rappelle).

Cela devrait aussi permettre à Power-Shell d'accéder à des serveurs COM
dynamiques, et peut-être de simuler un serveur COM en power-shell (sous
réserve d'expérimentation).



A voir.
Mais je pense que l'accès aux com devrait être amélioré dans un futur
PowerShell.


@+

Michel Claveau



Amicalement,

--
Jean - JMST
Belgium

Avatar
Michel Claveau
Salut !

Une question, hors sujet, mais sur le même sujet : j'ai l'impression
que, dans les HTA, le pragma "defer" est ignoré.

Confirmation ?








--
@-salutations

Michel Claveau
Avatar
Michel Claveau
Confirmation ?


Non ! Je confirme plutôt qu'on devrait toujours tester un peu plus,
avant de dire des co......s

Donc : "defer" fonctionne normalement, dans le HTA.






--
@-salutations

Michel Claveau

Avatar
Méta-MCI
Bonsoir !


Il y a peut être moyen d'utiliser une iframe dans le hta à la place de
l'instance InternetExplorer.Application ...




J'ai essayé. Mais le iframe reste du HTA ; il n' y a pas d'instance
Internet-Explorer mise en place, donc pas de serveur COM accessible.

Dommage, l'idée était bonne.


Sinon, j'avais essayé l'inverse : un iFrame HTA dans une page
Internet-Explorer. Mais l'aspect HTA est alors ignoré, et le document est
traité comme du HTML.



@

MCI