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

page html pour executer un programme dos: javascript ?

15 réponses
Avatar
zi administr a tort
Bonsoir,

[xpost: fciwa + fcow ; fu2: fciwa]

Je voudrais réaliser une page html qui contiendrait 8 boutons permettant
de lancer l'exécution d'un programme dos auquel on passerait en
argument un fichier texte dépendant du bouton cliqué.

Il s'agit à partir du poste du prof de réveiller tout ou partie des 8
postes élèves de la salle de cours.

Il faut que ce soit ultra-simple: le prof allume son poste, ouvre la
page html en question et clique sur les boutons qui permettent de
réveiller par Wake On LAN les postes occupés par les élèves.

Les huit fichiers contenant les adresses MAC des cartes des postes
élèves et le programme dos sont bien sûr dans le même dossier que la
page html, sur le poste du prof.

Me fourvoie-je en pensant que c'est avec javascript que je vais faire ça ?
Parce qu'il faut que ce soit du stand-alone ultra-fermé et autonome, pas
du php-ki-pu-que-le-serveur-a-ses-vapeurs.

Je n'ai jamais fait de javascript, une âme charitable aurait-elle un début
d'amorce d'exemple ?


Merci à vous.

PS: Le but est d'éviter au prof d'ouvrir chacune des 8 petites armoires
contenant les PC des élèves et d'y tordre sa petite clé chétive dans le
chewing-gum de l'élève farceur (mais on en fera kekchosekanmêêmm)

10 réponses

1 2
Avatar
Olivier Miakinen
Je suis à peu près sûr de marcher encore dans un troll, mais je ne peux
pas résister.

Le 06/12/2007 00:52, zi administr a tort a écrit :
Bonsoir,

[xpost: fciwa + fcow ; fu2: fciwa]



fr.comp.lang.javascript était aussi une option envisageable.

Je voudrais réaliser une page html qui contiendrait 8 boutons permettant
de lancer l'exécution d'un programme dos auquel on passerait en
argument un fichier texte dépendant du bouton cliqué.

[...]

Me fourvoie-je en pensant que c'est avec javascript que je vais faire ça ?



Tu ne pourras forcément pas te contenter de JavaScript côté client, vu
que celui-ci n'a aucune possibilité de lancer un exécutable de ton choix
sur la machine cliente. Il paraît qu'il existe une possibilité pour
avoir du JavaScript côté serveur, mais il me semble aussi simple de
développer un programme en C, en Perl, ou bien sûr en PHP.

Parce qu'il faut que ce soit du stand-alone ultra-fermé et autonome, pas
du php-ki-pu-que-le-serveur-a-ses-vapeurs.



Voilà ce qui me fait dire que tu te fiches pas mal du contenu des
réponses, mais que tu as très envie que les réponses soient très
nombreuses pour prouver que ton troll a marché.


P.-S. : Je ne réponds pas à tout ce qui concerne les actions que tu veux
effectuer. D'ailleurs je n'ai même pas cherché à comprendre de quoi il
s'agissait exactement : si c'est bien un troll on s'en fout ; et si ce
n'est pas un troll on s'en fout aussi puisque le point le plus délicat
est de lancer un programme et pas ce que fait ce programme.
Avatar
zi administr a tort
Le Thu, 06 Dec 2007 01:12:40 +0100, Olivier Miakinen a écrit:
Je suis à peu près sûr de marcher encore dans un troll, mais je ne peux
pas résister.

Le 06/12/2007 00:52, zi administr a tort a écrit :
> Bonsoir,
>
> [xpost: fciwa + fcow ; fu2: fciwa]

fr.comp.lang.javascript était aussi une option envisageable.



Oui, mais je ne suis pas sur que javascript convienne...

> Je voudrais réaliser une page html qui contiendrait 8 boutons permettant
> de lancer l'exécution d'un programme dos auquel on passerait en
> argument un fichier texte dépendant du bouton cliqué.
>
> [...]
>
> Me fourvoie-je en pensant que c'est avec javascript que je vais faire ça ?

Tu ne pourras forcément pas te contenter de JavaScript côté client,



Il n'y a pas de «coté-client» ou «coté-serveur» dans mon exposé, je
disais plus bas que je voulais «il faut que ce soit du stand-alone
ultra-fermé et autonome».
Le fichier html sert juste d'interface très facilement transportable
d'une salle de cours à une autre.

Nous serions-nous mal compris ?

vu que celui-ci n'a aucune possibilité de lancer un exécutable de ton
choix sur la machine cliente.



Il n'y a qu'une machine allumée dans la salle, appelle-là
«machine-cliente» si tu veux.

Il paraît qu'il existe une possibilité pour avoir du JavaScript côté
serveur, mais il me semble aussi simple de développer un programme en
C, en Perl, ou bien sûr en PHP.



Pourquoi voudrais-tu que le poste du prof se connecte à un serveur
quelconque pour y lancer l'exécution d'un programme qui aurait pour
effet de charger le serveur et d'encombrer inutilement le réseau ?

Il y a bien plusieurs serveurs sur le réseau du lycée, mais je n'ai pas
la main dessus et je doute que l'admin du réseau accepte de perdre son
temps avec mes geekeries.

Quand je lui aurais montré qu'il est inutile de laisser tourner 24/7
tous les PC en libre service au prétexte que leur démarrage est lent,
alors peut-être me laissera-t-il écrire la tâche cron qui les réveillera
les jours de semaine à 7 h 30.

De plus je ne sais pas coder en C, ni en Perl et je ne vois pas
l'intérêt de le faire en PHP car je n'ai pas l'intention d'installer un
WAMP sur tous les postes de prof de toutes les salles de classe.

De plus le petit exécutable DOS existe déjà, alors pourquoi réinventer
la roue ?

> Parce qu'il faut que ce soit du stand-alone ultra-fermé et autonome, pas
> du php-ki-pu-que-le-serveur-a-ses-vapeurs.

Voilà ce qui me fait dire que tu te fiches pas mal du contenu des
réponses, mais que tu as très envie que les réponses soient très
nombreuses pour prouver que ton troll a marché.



On s'est donc mal compris.

P.-S. : Je ne réponds pas à tout ce qui concerne les actions que tu veux
effectuer. D'ailleurs je n'ai même pas cherché à comprendre de quoi il
s'agissait exactement : si c'est bien un troll on s'en fout ; et si ce
n'est pas un troll on s'en fout aussi puisque le point le plus délicat
est de lancer un programme et pas ce que fait ce programme.



Le prof arrive dans sa salle, allume son poste et ouvre la page html qui
contient des boutons ou de simples liens lui permettant d'allumer par
WOL les postes occupés par les élèves.
Je dispose d'un exécutable DOS qui demande qu'on lui passe en argument
le nom du fichier texte contenant l'adresse MAC du poste à allumer.
Chaque poste élève est configuré au niveau du BIOS pour que la CM se
réveille sur PCI-Event et la carte réseau est configurée pour accepter
les MagicPacket©

Après googlisation j'ai un morceau de code, mais qui ne permet
apparemment pas de passer un argument (comme je l'ai dis je n'y connais
rien en javascript, mais ce serait l'occasion d'apprendre)
8<-----------8<---------8<----------8<----------8<----------8<----------8<
<html>
<head>
<script language="javascript">
<!--
function RunExe() {
var wScript = new ActiveXObject("Wscript.Shell" );
wScript.run("toto.exe" );
return false;
}

//-->
</script>
</head>
<body>
<a href="" onClick="return RunExe();">Toto</a>
</body>
</html>
8<-----------8<---------8<----------8<----------8<----------8<----------8<

J'ai ouï dire que Windows XP serait susceptible d'empêcher l'exécution de
tel script...

Pourrais-tu me dire où tu vois un troll dans mon post ?
Avatar
SAM
zi administr a tort a écrit :

Après googlisation j'ai un morceau de code, mais qui ne permet
apparemment pas de passer un argument (comme je l'ai dis je n'y connais
rien en javascript, mais ce serait l'occasion d'apprendre)



Bon à mon idée c'est tout sauf du JavaScript (vScript ? vbScript ?)

D'une part Google profuse d'infos à propose de :
new ActiveXObject("Wscript.Shell" );
d'autre part certains conseillent de passer par un(des ?) fichier(s) HTA
<http://msdn2.microsoft.com/en-us/library/ms536496.aspx>


8<-----------8<---------8<----------8<----------8<----------8<----------8<
<html>
<head>
<script language="javascript">
<!--
function RunExe(variable) {
var wScript = new ActiveXObject("Wscript.Shell" );
wScript.run("toto.exe" );
return false;
}



// à tous z'azard :
function RunExe(variable) {
var wScript = new ActiveXObject("Wscript.Shell" );
wScript.run("C:Program Filestoto.exe" variable);
return false;
}

//-->
</script>
</head>
<body>
<a href="" onClick="return RunExe();">Toto</a>



<a href="" onClick="return RunExe('toto.txt');">Toto</a>


</body>
</html>
8<-----------8<---------8<----------8<----------8<----------8<----------8<

J'ai ouï dire que Windows XP serait susceptible d'empêcher l'exécution de
tel script...



Ha! ben ! y a des chances qu'il n'apprécie guère
(c'est pas dommage !
sinon y a plus qu'à lancer l'truc depuis n'importe où)

Pourrais-tu me dire où tu vois un troll dans mon post ?



Ben ... ce serait-y pas plus vite fait de réveiller tel ou tel PC en
l'appelant direct par son IP ?
(à moins que les PC Win en soient incapables ?)
Avatar
Zi administr a tort
Le Thu, 06 Dec 2007 03:23:16 +0100, SAM a écrit:
zi administr a tort a écrit :
>
> Après googlisation j'ai un morceau de code, mais qui ne permet
> apparemment pas de passer un argument (comme je l'ai dis je n'y connais
> rien en javascript, mais ce serait l'occasion d'apprendre)

Bon à mon idée c'est tout sauf du JavaScript (vScript ? vbScript ?)



Merci de cette "idée", c'est bien des avis de ton genre que je cherche.
Mais je vais aussi faire des tests en direct-live, en espérant ne pas
foutre le bronx... (tard le soir, ça devrait pas se voir :)

D'une part Google profuse d'infos à propose de :
new ActiveXObject("Wscript.Shell" );
d'autre part certains conseillent de passer par un(des ?) fichier(s) HTA
<http://msdn2.microsoft.com/en-us/library/ms536496.aspx>



OK, merci du lien.

> 8<-----------8<---------8<----------8<----------8<----------8<----------8<
> <html>
> <head>
> <script language="javascript">
> <!--
> function RunExe(variable) {
> var wScript = new ActiveXObject("Wscript.Shell" );
> wScript.run("toto.exe" );
> return false;
> }

// à tous z'azard :
function RunExe(variable) {
var wScript = new ActiveXObject("Wscript.Shell" );
wScript.run("C:Program Filestoto.exe" variable);
return false;
}



Suis-je bête de n'y avoir pas pensé... Mais ça m'oblige à écrire autant
de function qu'il y a de poste dans la salle.

> J'ai ouï dire que Windows XP serait susceptible d'empêcher l'exécution de
> tel script...

Ha! ben ! y a des chances qu'il n'apprécie guère



<div style="JPP: revient;">
Bin pourquoi ?
</div>

(c'est pas dommage !
sinon y a plus qu'à lancer l'truc depuis n'importe où)



Ouiménon, ça ne serait implanté que sur le poste du prof. (Quoique
certains profs sont des neuneus aussi, hein...)

> Pourrais-tu me dire où tu vois un troll dans mon post ?

Ben ... ce serait-y pas plus vite fait de réveiller tel ou tel PC en
l'appelant direct par son IP ?
(à moins que les PC Win en soient incapables ?)



Euh... Comment dire ? :))

Je vois pas trop comment causer à une IP qui n'existe pas encore si le
poste est éteint !!
(En plus je crois que les IP sont dynamiques)
Avatar
Pierre Goiffon
Olivier Miakinen wrote:
Je voudrais réaliser une page html qui contiendrait 8 boutons permettant
de lancer l'exécution d'un programme dos auquel on passerait en
argument un fichier texte dépendant du bouton cliqué.





Je vous conseille plutôt de réaliser cela en WSH.

Pour le côté interface, voir :
http://www.bellamyjc.org/fr/vbsavance.html#shellwindows

Pour la référence de l'environnement et des langages (VBScript, JScript)
utilisables :
http://msdn.microsoft.com/scripting/
Avatar
Pierre Goiffon
Zi administr a tort wrote:
Ben ... ce serait-y pas plus vite fait de réveiller tel ou tel PC en
l'appelant direct par son IP ?
(à moins que les PC Win en soient incapables ?)



Euh... Comment dire ? :))

Je vois pas trop comment causer à une IP qui n'existe pas encore si le
poste est éteint !!



C'est le Wake on LAN, et c'est utilisé dans beaucoup de réseaux
d'entreprises. Voir :
http://fr.wikipedia.org/wiki/Wake_on_lan

(nous sommes définitivement hors sujet, je pense qu'une redirection vers
un groupe Windows - mais lequel?? - serait bienvenu)
Avatar
Laurent vilday
Pierre Goiffon a écrit :
Olivier Miakinen wrote:
Je voudrais réaliser une page html qui contiendrait 8 boutons permettant
de lancer l'exécution d'un programme dos auquel on passerait en
argument un fichier texte dépendant du bouton cliqué.





Je vous conseille plutôt de réaliser cela en WSH.



Oui, ou avec SilverLight ou AIR (et probablement d'autres technos), ma
main à coupée que ça se fait.

Mais ma préférence se porterait vers le XUL pour rester dans l'esprit
HTML/CSS/JS :)

--
laurent
Avatar
Laurent vilday
Zi administr a tort a écrit :
Le Thu, 06 Dec 2007 03:23:16 +0100, SAM a écrit:
zi administr a tort a écrit :
J'ai ouï dire que Windows XP serait susceptible d'empêcher l'exécution de
tel script...


Ha! ben ! y a des chances qu'il n'apprécie guère



Bin pourquoi ?



Parce que jusqu'à il y a peine quelques mois (24/08/2007), Microsoft ne
s'était pas acquitté de la licence d'un brevet (contesté par Microsoft)
appartenant à Eolas. Brevet permettant, en simplifiant, l'exécution
immédiate des activeX. Il fallait passer par des étapes d'activation
individuelles à chaque appel d'élément "multimédia".

C'est rectifié désormais, à condition d'avoir une machine à jour
évidemment, Microsoft ayant conclu des accords.

Non, non, Microsoft n'a pas payé pour l'utilisation du brevet, un accord
amiable a été conclu :)

--
laurent
Avatar
Pierre Goiffon
Laurent vilday wrote:
Je voudrais réaliser une page html qui contiendrait 8 boutons
permettant
de lancer l'exécution d'un programme dos auquel on passerait en
argument un fichier texte dépendant du bouton cliqué.





Je vous conseille plutôt de réaliser cela en WSH.



Oui, ou avec SilverLight ou AIR (et probablement d'autres technos), ma
main à coupée que ça se fait.

Mais ma préférence se porterait vers le XUL pour rester dans l'esprit
HTML/CSS/JS :)



J'ai cru comprendre que XUL ne permettait pas ce genre de choses, car
plutôt dédié à la création d'interfaces sans interaction avec le système
local ?
Avatar
Laurent vilday
Pierre Goiffon a écrit :
Laurent vilday wrote:
Je voudrais réaliser une page html qui contiendrait 8 boutons
permettant
de lancer l'exécution d'un programme dos auquel on passerait en
argument un fichier texte dépendant du bouton cliqué.





Je vous conseille plutôt de réaliser cela en WSH.



Mais ma préférence se porterait vers le XUL pour rester dans l'esprit
HTML/CSS/JS :)



J'ai cru comprendre que XUL ne permettait pas ce genre de choses, car
plutôt dédié à la création d'interfaces sans interaction avec le système
local ?



L'interface nsIProcess me semble pourtant indiquée

<http://developer.mozilla.org/en/docs/Code_snippets:Running_applications>
Et en fr :
<http://developer.mozilla.org/fr/docs/Extraits_de_code:Ex%C3%A9cuter_des_applications>

--
laurent
1 2