OUVRIR UN HTA A PARTIR D'UN AUTRE HTA SANS MESSAGE (EXECUTER OU ENREGISTRER) + P

Signaler
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Messages postés
197
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40524-ouvrir-un-hta-a-partir-d-un-autre-hta-sans-message-executer-ou-enregistrer-passage-de-parametre-et-de-variable

Messages postés
197
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2011

Oui néo3 mais si les ActiveX sont bloqué par l'utilisateur (outil, option internet,avancé, sécurité), tu as un joli message windows qui te previens.
Messages postés
68
Date d'inscription
jeudi 14 septembre 2006
Statut
Membre
Dernière intervention
10 septembre 2010

Je manipule ce truc de puis longtemps et il y a beaucoup plus simple :

var reg=new ActiveXObject("WScript.Shell");
reg.run("le chemin du fichier HTA");

Note : fonctionne aussi avec tous les fichiers y compris EXE

Désolé pour ta "trouvaille" ^^

NEO III
Messages postés
197
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2011

Tu sais il est tout à fait possible d'ouvrir un fichier hta directement en local et cela sans avoir de message pour exécuter ou enregistrer.

Oui lorsque tu lance le 1er fichier (TestIndex.hta), je suis d'accord, tu n'as pas de message.
Par contre, losque tu fait un lien vers un autre fichier hta (cf lien2 dans la nouvelle source) le message d'enregistrement ou d'exécution apparait.
Messages postés
197
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2011

Milles excuses pour le principe: Lorsque l'on reprend l'idée d'une autre personne, il me semble qu'il faut le noter.

Donc Merci a toi pour le coup de main du .htas .
(P.S: je t'ai citer sur le site VB, mais ais oublié de le faire ici.
Si tu parles de la source du site VB, c'est de moi)

Voila pour mon "me aculpa".

Pour ce qui est des problemes:
1- une boîte de message demandant si nous voulons exécuter le fichier:
Le but était justement de supprimer le message windows.
Ca marche trés bien sur mon PC (et ceux du boulot), donc je ne vois pas pourquoi le message apparais chez toi.
1er: Comme dis Bricomaniac, c'est peut etre ton antivirus, ou un firewall qui donne le message.
Sur les images postées, il semble que ce soit McAffe qui bloque le hta (voir symbole en bas de la fenetre).
Le message windows se presente comme cela: http://img177.imageshack.us/my.php?image=buget2.jpg
2eme: a partir d'où l'as-tu executer?

2-Regardes j'ai mis ton fichier doc.hta sur mon bureau et je l'ai ouvert, je n'ai pas eu la boîte, exécuter.
Donc cette foi le message executer, enregistrer n'apparait pas... c'est bizard puisqu'il apparaissait dans ton 1er post.

3-Il semblerait qu'il y ait une faute dans ton fichier hta à la ligne 36.
L'erreur apparait lorsque tu lance le fichier doc.hta dirrectement (sans passer par TestIndex.hta et le lien).
C'est normal dans ce cas;
l'intruction: var ParamEntier=doc.commandLine.split("/?");
prend l'url de la page,
creer un tableau ParamEntier avec dans
-ParamEntier[0] ce qui est avant le /?
-ParamEntier[1] ce qui est aprés le /?
>Split permet d'isoler les champ entre /?

or quand tu lance le fichier dirrectement, il n'y a pas de /? dans l'URL, donc param[1] n'existe pas. Du coup quand tu demande d'y acceder, il te plante.
(3message que j'envoie: 2eme partie, apres le symbole /?:undefined)

Pour amméliorer, On pourrait mettre une securité du genre:
if(ParamEntier!=1){ tout le reste du code}
else alert('le fichier a été lancé dirrectement, il n\'y a donc pas de parametre');

j'uploade la source avec modif tout de suite.

Voila j'espere que ces explications vous irons,
n'hesitez pas sinon.
Afficher les 9 commentaires