OVH Cloud OVH Cloud

Pb HTA et window.open

2 réponses
Avatar
Do Re Mi chel La Si Do
Bonsoir !


Soit une appli, avec un fichier .HTA local, qui fonctionne bien.

Cet écran ouvre, avec window.open, d'autres fichiers (en local, et dans le
même répertoire).

Si j'ouvre des fichiers .HTM, pas de problèmes, cela s'ouvre avec un IE sans
barre d'outils, sans fioriture, etc. Mais avec un processus iexplore.

Si je veux ouvrir un fichier .HTA, alors, windows me pose la question de
savoir si je veux ouvrir, enregistrer, ou annuler, le fichier. Si je
l'ouvre, j'ai bien ma fenêtre ouverte, et un nouveau processus MSHTA.


Ma question, c'est : pourquoi la question m'est-elle posée lorsqu'un .HTA
ouvre un autre .HTA, et non lorsqu'il ouvre un .HTM ?
Et, en conséquence : comment faire pour ouvrir des fichiers .HTA locaux,
sans que cette damnée question ne soit posée ?


Merci d'avance.

Michel Claveau

2 réponses

Avatar
Stéphane
En utilisant par exemple un objet Wscript.Shell dont voici la syntaxe en
jscript
var WshShell = new ActiveXObject("Wscript.Shell")
var chemin=mon fichier hta
WshShell.Run('"'+chemin+'"');

Cordialement
Stéphane Garnaud

"Do Re Mi chel La Si Do" a écrit dans le
message de news:
Bonsoir !


Soit une appli, avec un fichier .HTA local, qui fonctionne bien.

Cet écran ouvre, avec window.open, d'autres fichiers (en local, et dans le
même répertoire).

Si j'ouvre des fichiers .HTM, pas de problèmes, cela s'ouvre avec un IE
sans barre d'outils, sans fioriture, etc. Mais avec un processus iexplore.

Si je veux ouvrir un fichier .HTA, alors, windows me pose la question de
savoir si je veux ouvrir, enregistrer, ou annuler, le fichier. Si je
l'ouvre, j'ai bien ma fenêtre ouverte, et un nouveau processus MSHTA.


Ma question, c'est : pourquoi la question m'est-elle posée lorsqu'un .HTA
ouvre un autre .HTA, et non lorsqu'il ouvre un .HTM ?
Et, en conséquence : comment faire pour ouvrir des fichiers .HTA locaux,
sans que cette damnée question ne soit posée ?


Merci d'avance.

Michel Claveau





Avatar
Do Re Mi chel La Si Do
Bonjour !

Merci, mais ça ne me convient pas.

Car, en ouvrant un autre fichier avec windows.open, les deux fenêtres sont
liées. Par exemple, dans ma fenêtre maître, j'ai un canal COM, ouvert sur un
logiciel-serveur-COM, avec toto=CreateObject (javascrip). Du coup, dans les
fenêtres-filles, je peux y accéder, avec un simple opener.toto

Si j'utilise un Wscript.Shell.run je vais avoir deux objets non liés. Du
coup, pour tout appel à mon serveur-COM, cela va ouvrir une nouvelle
instance de ce dernier. Du coup, cela deviendrait très difficile de gérer
mon application, car, pour communiquer entre les sessions, je suis obligé de
passer par un serveur commun, d'un autre niveau, et, soit par mmap, soit par
TCP/IP. Autant faire du distribué.

Donc, je suis obligé de passer par window.open (ou un équivalent).

Michel Claveau