OVH Cloud OVH Cloud

[HTA] passage de paramètres (équivalent de "wscript.Arguments sous Wsh)

22 réponses
Avatar
sympatix
bonjour !

J'aurais besoin de passer en paramètres le path d'un dossier
dans une application HTA (en vbs),
en faisant un copier-coller du dit dossier sur mon fichier
HTA (exactement comme on peut faire un passage de paramètres en VbScript
sous Wsh, à l'aide de l'objet "Wscript.arguments", mais qui malheureusement,
n'est pas disponible dans un contexte HTA.
Est-ce faisable sans mettre en oeuvre une trop grosse usine à gaz, et si
oui, comment ?

merci d'avance :-)
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)

10 réponses

1 2 3
Avatar
Fred
Dans son message %
sympatix nous dit :

bonjour !

J'aurais besoin de passer en paramètres le path d'un dossier
dans une application HTA (en vbs),
en faisant un copier-coller du dit dossier sur mon fichier
HTA (exactement comme on peut faire un passage de paramètres en
VbScript sous Wsh, à l'aide de l'objet "Wscript.arguments", mais qui
malheureusement, n'est pas disponible dans un contexte HTA.
Est-ce faisable sans mettre en oeuvre une trop grosse usine à gaz, et
si oui, comment ?

merci d'avance :-)


Bonjour Sympatix !

Un petit extrait de la MSDN Library (je ne l'avais pas vu avant que tu
poses ta question :-) )

<HTML>
<HEAD>
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="myApp"

<SCRIPT>

alert("commandLine = " + oHTA.commandLine);
</SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT

Avatar
sympatix
Salut !

Un petit extrait de la MSDN Library (je ne l'avais pas vu avant que tu
poses ta question :-) )

<HTML>
<HEAD>
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="myApp"

<SCRIPT>

alert("commandLine = " + oHTA.commandLine);
</SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML



Ce n'est pas vraiment ce que je cherche. Ton code nous retourne le path du
fichier HTA en cours.
Ce qu'il me faudrais, c'est que le path d'un *dossier déposé en paramètres*,
par un glisser-déposé, sur le fichier hta, lance d'une part ce fichier HTA,
avec les paramètres adéquats d'autre part (en l'occurence, le path du
dossier dont on a
fait le copier-coller).
En fait, c'est l'équivalent de ça (à mettre dans un fichier vbs) que je
voudrais: affichage du path du fichier déposé en paramètres:

---------------------------------
Set args = WScript.Arguments
A = args(0)
msgBox A
---------------------------------

--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)
"Fred" a écrit dans le message de news:
uOg5%
Dans son message %
sympatix nous dit :

bonjour !

J'aurais besoin de passer en paramètres le path d'un dossier
dans une application HTA (en vbs),
en faisant un copier-coller du dit dossier sur mon fichier
HTA (exactement comme on peut faire un passage de paramètres en
VbScript sous Wsh, à l'aide de l'objet "Wscript.arguments", mais qui
malheureusement, n'est pas disponible dans un contexte HTA.
Est-ce faisable sans mettre en oeuvre une trop grosse usine à gaz, et
si oui, comment ?

merci d'avance :-)


Bonjour Sympatix !

Un petit extrait de la MSDN Library (je ne l'avais pas vu avant que tu
poses ta question :-) )

<HTML>
<HEAD>
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="myApp"

<SCRIPT>

alert("commandLine = " + oHTA.commandLine);
</SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT



Avatar
Fred
Dans son message eY8IV$
sympatix nous dit :

Salut !

Un petit extrait de la MSDN Library (je ne l'avais pas vu avant que
tu poses ta question :-) )

<HTML>
<HEAD>
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="myApp"

<SCRIPT>

alert("commandLine = " + oHTA.commandLine);
</SCRIPT>
</HEAD>
<BODY SCROLL="no">

</BODY>
</HTML



Ce n'est pas vraiment ce que je cherche. Ton code nous retourne le
path du fichier HTA en cours.


Plus les paramètres éventuels que tu lui a passés. Mais en *ligne de
commande*.

Ce qu'il me faudrais, c'est que le path d'un *dossier déposé en
paramètres*, par un glisser-déposé, sur le fichier hta, lance d'une
part ce fichier HTA, avec les paramètres adéquats d'autre part (en
l'occurence, le path du dossier dont on a
fait le copier-coller).


Je ne sais pas si c'est possible. Peut-être en bidouillant dans les
types de fichier ?
Si cela fonctionne en ligne de commande, il doit y avoir moyen de le
faire fonctionner dans l'interface graphique.

En fait, c'est l'équivalent de ça (à mettre dans un fichier vbs) que
je voudrais: affichage du path du fichier déposé en paramètres:

---------------------------------
Set args = WScript.Arguments
A = args(0)
msgBox A
---------------------------------




--
Fred
http://www.cerbermail.com/?3kA6ftaCvT



Avatar
sympatix
Plus les paramètres éventuels que tu lui a passés. Mais en *ligne de
commande*.
Oui, mais le problème, c'est qu'il faut les écrire dans le code, donc,

le cas présent, ça n'a pas d'intérêt.
C'est même l'inverse qu'il me faut.(que je récupère le paramètre de
l'extérieur).

.../...
Peut-être en bidouillant dans les types de fichier ?
Si cela fonctionne en ligne de commande, il doit y avoir moyen de le faire
fonctionner dans l'interface graphique.
En faisant l'expérience, en copiant un fichier quelconque, puis

en tentant de le coller sur un fichier HTA, le clic droit ne fait pas
apparaître l'action de coller, comme c'est le cas sur un fichier vbs. C'est
a première vue pas très bon signe !

Merci quand même, en attendant de trouver mieux, je vais contourner le
problème en utilisant IE, piloté par
un vbs.

--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)

Avatar
Fred
Dans son message
sympatix nous dit :

.
En faisant l'expérience, en copiant un fichier quelconque, puis
en tentant de le coller sur un fichier HTA, le clic droit ne fait pas
apparaître l'action de coller, comme c'est le cas sur un fichier vbs.
C'est a première vue pas très bon signe !


Oui, il n'y a pas de clé "DropHandler" sur les fichiers d'extension HTA
(dans le registre).
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/drophandlers.asp


Merci quand même, en attendant de trouver mieux, je vais contourner le
problème en utilisant IE, piloté par
un vbs.


Je crains qu'il n'y ait pas d'autre solution simple.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT

Avatar
sympatix
Oui, il n'y a pas de clé "DropHandler" sur les fichiers d'extension HTA
(dans le registre).
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/drophandlers.asp
Merci pour cette info. D'après la doc, on peut en créer, mais ça ne

m'interresse pas, je veux que mon appli fonctionne sous un window le plus
basique possible.

Je vais donc opter pour d'autres solutions.
(Peut-être que les dévellopeurs des futures versions d'MsHta, si c'est
prévu, pourrons prendre en compte cette suggestion, d'ajouter le passage
d'arguments par drag-and-drop sur le fichier)

Merci encore :-)
--
Cordialement
Sympatix
(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)

Avatar
Do Re Mi chel La Si Do
Bonsoir !


Il y a un moyen simple, si le nombre d'arguments est limité. C'est de passer
par un batch (fichier .BAT)



Par exemple :

fichier args.hta

fichier args.bat , dans le même répertoire, contenant :

args.hta %1 %2 %3 %4 %5 %6 %7 %8 %9
exit


Pour tester, on crée un icone sur args.bat, et on drag-drop depuis
l'explorateur. C'est tout.

Il y a d'autres moyens, mais légèrement plus compliqués.



@-salutations

Michel Claveau
Avatar
sympatix
Bonsoir !
Bonsoir !


Il y a un moyen simple, si le nombre d'arguments est limité. C'est de
passer par un batch (fichier .BAT)
Par exemple :
fichier args.hta
fichier args.bat , dans le même répertoire, contenant :
args.hta %1 %2 %3 %4 %5 %6 %7 %8 %9
exit

Pour tester, on crée un icone sur args.bat, et on drag-drop depuis
l'explorateur. C'est tout.

Il y a d'autres moyens, mais légèrement plus compliqués.


Les premiers essais sont concluants, je récupère bien dans une fenêtre de
commande, le path du fichier ou du dossier "glissé" sur le raccourci du bat,
et le fichier hta est bien lancé.
Mais...je ne veux pas être rabajoie, je ne vois pas du tout comment
récupérer cet argument dans ma page hta, sous forme de variable, pour
l'exploiter ensuite ?
En fait, je voudrais savoir quoi mettre dans ma page hta (dans un script, je
suppose), pour qu'à son ouverture, une variable soit affectée par la valeur
de l'argument (un truc du style: variable = Argument_depose), et dans ce
cas, le path du dossier déposé.

Merci :-)
--
Cordialement
sympatix
Antispam: Supprimer les "toto" pour me répondre

Avatar
Michel Claveau
Re (depuis un autre CPU)

Il te suffit de rapprocher mon astuce (mot féminin), du truc (mot masculin)
de Fred. La nature (des choses) étant bien faite, cela donnera de bons
petits résultats.

Voici le script (?) de Fred, légèrement retouché, pour répondre à ton
besoin. En le sauvant sous "args.hta", il pourra se faire draguer par
l'astuce précédente.

Michel Claveau.

___________________________________


<HTML>
<HEAD>
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="myApp"



<SCRIPT language=Javascript>
var ligarg=oHTA.commandLine;

function ecritarg(){
pointe = document.getElementById('pecriture');
pointe.innerText = ligarg;
}
</SCRIPT>
</HEAD>

<BODY bgColor=#aabfbf scroll=no onload="ecritarg();">
<br>
La ligne de commande (avec arguments) est : <br>
<br><b>
&nbsp;&nbsp;<span id=pecriture>-Vide-</span>
</b><br>
</BODY>
</HTML>

Avatar
Fred
Dans son message e$
Michel Claveau nous dit :

Re (depuis un autre CPU)

Il te suffit de rapprocher mon astuce (mot féminin), du truc (mot
masculin) de Fred. La nature (des choses) étant bien faite, cela
donnera de bons petits résultats.

Voici le script (?) de Fred, légèrement retouché, pour répondre à ton
besoin. En le sauvant sous "args.hta", il pourra se faire draguer par
l'astuce précédente.



Bonjour Michel,
Je garde l'intégralité de ton post au risque de me faire remonter les
bretelles pour "quotage de goret" car j'apprécie beaucoup cette vision
du scripting :-)

Mais je pense que le problème de Sympatix est autre. Ce qui lui manque,
c'est l'analyse de la ligne de commande. Ton script (comme celui que
j'ai trouvé dans MSDN) renvoient toute la ligne de commande et non les
paramètres dans un tableau.
(Au passage bravo pour l'idée du bat !)

Hélas, Sympatix, je crois qu'il va falloir programmer un peu plus que
prévu ;-)
Méfie-toi des espaces dans les noms de fichiers.

Peut-être une solution avec des expressions régulières ? Attends
d'autres avis, je ne suis pas assez calé pour t'aider sur leur
utilisation dans ce cas précis (ou relance un fil à ce sujet peut-être).

[...]


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Outlook Express et les News : http://foleide.free.fr/prmoe.htm

1 2 3