voilà, je vais essayer d'exposer simplement ma situation, ça a l'air compliqué mais en fait ...
J'ai une petite appli écrite en HTA.
La structure se décompose en deux parties :
[b]<script>
...
...
</script>
<HTML>
<SPAN1>
<SPAN2>
...
<SPAN9>
</HTML>[/b]
comme vous pouvez le voir, la partie HTML ne contient que tes tag "SPAN".
Ainsi, je peux facilement depuis le script modifier dynamiquement l'apparence de la fenetre en plaçant des
[b]SPAN1.InnerHTML = ...[/b]
La page principale appèle diverses sub qui chacunes ré-initialisent toutes les lignes SPAN et leur donnent l'apparence qu'elles veulent.
L'une de ces SUB crée des lignes contenant chacune un bouton. Chaque bouton renvoyant sur une autre sub ...
Par exemple
donc, quand on clique sur le bouton "Go" on lance la Function (ou la Sub ) : "VerifyAdminRights"
La sub "VerifyAdminRigths" a son tour re-écrit tous les SPAN.
Elle crée deux zones à remplir : une texte (username_text) et une password (userpassword_text) et un nouveau bouton : "CheckUser"...
Un click sur ce bouton appèle une fonction qui vérifie que le user indiqué est bien admin local de la machine et que le password est juste par un TRUE / FALSE
Voici mon problème...
Le code principal (Window_OnLoad) appèle la première sub
Cette SUB fait son Job puis, soit quite, soit retourne au "main" en l'appellant directement :
If ... Then
Exit Sub
Else
Window_OnLoad
End If
Là, pas de problème, c'est du pur séquentiel, chaque sub est indépendante.
Par contre ...
La Sub, doit
Mettre à jour les SPAN --> Ca c'est fait
Attendre que quelqu'un clique sur le bouton --> ca c'est pas fait : span.innerhtml ne fait que modifier la page, mais le script continue d'avancer après ça sans attendre un évennement quelconque.
Récuppérer le résultat de la sous-fonction appelée par le bouton et l'utiliser comme elle l'entend.
J'ai essayé de placer une boucle d'attente
do while result=0 : wscript.sleep 500 : loop
juste après le SPAN, il suffirait de changer la valeur de la variable result à la fin de la sous-fonction pour sortir de la boucle et continuer le traitement de la sub ...
Mais voilà ...
Ce n'est pas très propre, et surtout ... wscript.sleep, en HTA ça ne marche pas
Alors, une idée ?
Il faut juste que je sache réagir à l'évennement : "quelqu'un a cliqué sur le bouton et la fonction qu'il a appelé est terminée"