C'est dans le titre:
Ouvrir un fichier HTA a partir d'un fichier autre HTA,
sans que windows demande si il faut l'executer ou l'enregistrer.
+
Passer un parametre
+
recupere la variable
J'ai cherché longtemps sur le web une possibilité pour faire ceci.
N'ayant pas trouvé, j'ai pondu ce code.
Regardé le zip pour les explications
P.S: desole il y a un peu de VB pour contourner le probleme de l'alerte windows
Conclusion :
P.S: ceci a été testé en local.
Il semblerait qu'il faut renommer le doc.hta en doc.HTAs
pour que ca fonctionne sur le web (rescepter les majuscule/minuscule de l'extention)
Merci de confirmer pour fonctionnement sur le web
11 déc. 2006 à 09:34
7 déc. 2006 à 12:57
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
5 déc. 2006 à 17:03
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.
5 déc. 2006 à 16:56
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.
5 déc. 2006 à 12:36
Tu peut utiliser un object :
dans ton head tu met :
<OBJECT ID="OPEN" ViewAsText CLASSID="clsid:13709620-C279-11CE-A49E-444553540000"></OBJECT>
et ensuite pour ton lien tu met href="javascript:OPEN.ShellExecute('chemin de ton hta')"
ps : seul probleme je croit que sa ne fonctionne pas sous 98 et versions anterieures.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.