Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[résolu]Faire défiler les secondes


BJH

Messages recommandés

Bonjour,

 

J'ai récupéré ce script en vbs pour mon lycée et j'aimerais tout en bas faire défiler les secondes dans le messages "La fenêtre se fermera dans 20 secondes"

Or je ne connais rien en programmation vbs, ou wsh car à priori c'est de cela qu'il s'agit.

 

Voici le script

 

'listing 1.1 : Script HelloWorld2.vbs

'////////////////////////////////////////////////////////////////////////////

' $Workfile: HelloWorld2.vbs $ $Revision: 3 $ $Date: 12/04/98 3:19p $

' $Archive: /Scripts/HelloWorld2.vbs $

' Copyright © 1998 Tim Hill. All Rights Reserved.

'////////////////////////////////////////////////////////////////////////////

 

' Simple ‚chantillon WSH "Hello World!"

Option Explicit

'Wscript.Echo Wscript.ScriptName & " $Revision: 3 $"

'Wscript.Echo "Copyright © 1998 Tim Hill. All Rights Reserved."

 

Dim WshNetwork,objDomain

 

Set WshNetwork = WScript.CreateObject("WScript.Network")

'WScript.Echo "Domain = " & WshNetwork.UserDomain

'WScript.Echo "Computer Name = " & WshNetwork.ComputerName

'WScript.Echo "User Name = " & WshNetwork.UserName

 

 

'Set objDomain = GetObject("LDAP://localhost")

'WScript.Echo "ADsPath:" & objDomain.ADsPath

'WScript.Echo "Class:" & objDomain.Class

'WScript.Echo "GUID:" & objDomain.GUID

'WScript.Echo "Name:" & objDomain.Name

'WScript.Echo "Parent:" & objDomain.Parent

'WScript.Echo "Schema:" & objDomain.Schema

 

 

' Ouvre IE et affiche la page about:blank pour nous fournir un document vide

Dim oIE, oIEDoc

Set oIE = Wscript.CreateObject("InternetExplorer.Application")

oIE.Navigate "about:blank"

Set oIEDoc = oIE.Document

oIE.AddressBar = False

oIE.StatusBar = False

oIE.ToolBar = False

oIE.MenuBar = False

oIE.Visible = True

oIE.fullscreen = true

 

' Emet maintenant le code HTML vers IE

oIEDoc.WriteLn "<html>"

oIEDoc.WriteLn "<head>"

oIEDoc.WriteLn "<title>Echantillon de script HelloWorld2</title>"

oIEDoc.WriteLn "</head>"

oIEDoc.WriteLn "<body bgcolor=EEE8AA>"

'oIEDoc.WriteLn "<p><center>Bienvenue dans Windows Scripting Host </center></p>"

oIEDoc.Write "<p><br><center>"

If Hour(Now) < 12 Then

oIEDoc.Write "<b>Bonjour,</b>"

ElseIf Hour(Now) < 17 Then

oIEDoc.Write "<b>Bonjour,</b>"

Else

oIEDoc.Write "<b>Bonsoir,</b>"

End If

oIEDoc.WriteLn "<p><center><b>Bienvenue sur le réseau pédagogique du Lycée Edgar Faure de Morteau </b></center></p>"

oIEDoc.WriteLn "<p><center><b> Nous sommes le " & Date & " : il est " & Time & "</b></center></p>"

oIEDoc.WriteLn "<p><center> Vous êtes connecté au domaine " & WshNetwork.UserDomain &"</center></p>"

oIEDoc.WriteLn "<p><center><font size=5> Le nom de votre station est : " & WshNetwork.ComputerName &"</font></center></p>"

oIEDoc.WriteLn "<p><br><br><center><b><font color=blue><font size=6> <u>Votre nom d'utilisateur est</u> : " & WshNetwork.UserName & "</font> </b></center></p>"

 

oIEDoc.WriteLn "<br><br><p><center><b><font color=red><font size=5> MESSAGE IMPORTANT </font> </b></center></p>"

oIEDoc.WriteLn "<p><center><b><font color=red>Cette station est utilisée par de nombreuses personnes </font> </b></center></p>"

oIEDoc.WriteLn "<p><center><b><font color=red>Veuillez ne pas en modifier la configuration.</font></b></center></p>"

oIEDoc.WriteLn "<p><center>Merci</center></p>"

oIEDoc.WriteLn "<p><center>Attendez SVP.</center></p>"

oIEDoc.WriteLn "<p><center>La fenêtre se fermera dans 20 secondes.</center></p>"

oIEDoc.WriteLn "</body>"

oIEDoc.WriteLn "</html>"

 

' Attendre 20 secondes

Dim vStart

vStart = Now

Do While DateDiff("s", vStart, Now) < 21

 

Wscript.Sleep 500

Loop

Set oIEDoc = Nothing

oIE.Quit

Set oIE = Nothing

Wscript.Quit 0

 

 

'////////////////////////////////////////////////////////////////////////////

 

 

 

 

Est-il possible de faire défiler les secondes de 20 à 0 que de laisser statique le 20 ?

Si oui comment ?

 

Merci par avance pour votre aide.

Lien vers le commentaire
Partager sur d’autres sites

voila une soluce

 

 

Dim Sc, Sc2
dim N



'listing 1.1 : Script HelloWorld2.vbs
'////////////////////////////////////////////////////////////////////////////
' $Workfile: HelloWorld2.vbs $ $Revision: 3 $ $Date: 12/04/98 3:19p $
' $Archive: /Scripts/HelloWorld2.vbs $
' Copyright © 1998 Tim Hill. All Rights Reserved.
'////////////////////////////////////////////////////////////////////////////

' Simple ‚chantillon WSH "Hello World!"

'Wscript.Echo Wscript.ScriptName & " $Revision: 3 $"
'Wscript.Echo "Copyright © 1998 Tim Hill. All Rights Reserved."

Dim WshNetwork, objDomain

Set WshNetwork = Wscript.CreateObject("WScript.Network")

' Ouvre IE et affiche la page about:blank pour nous fournir un document vide
Dim oIE, oIEDoc
Set oIE = Wscript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
Set oIEDoc = oIE.Document
oIE.AddressBar = False
oIE.StatusBar = False
oIE.Toolbar = False
oIE.MenuBar = False
oIE.Visible = True
oIE.fullscreen = True

dim A
For i = 1 To 20
Sc = Second(Time)
Sc2 = Second(Time)
A = 21 - i

if A = 1 then 
N = "seconde"
else
N = "secondes"
end if


oIE.Navigate "about:blank"

' Emet maintenant le code HTML vers IE
oIEDoc.WriteLn "<html>"
oIEDoc.WriteLn "<head>"
oIEDoc.WriteLn "<title>Echantillon de script HelloWorld2</title>"
oIEDoc.WriteLn "</head>"
oIEDoc.WriteLn "<body bgcolor=EEE8AA>"
'oIEDoc.WriteLn "<p><center>Bienvenue dans Windows Scripting Host </center></p>"
oIEDoc.Write "<p><br><center>"
If Hour(Now) < 12 Then
oIEDoc.Write "<b>Bonjour,</b>"
ElseIf Hour(Now) < 17 Then
oIEDoc.Write "<b>Bonjour,</b>"
Else
oIEDoc.Write "<b>Bonsoir,</b>"
End If
oIEDoc.WriteLn "<p><center><b>Bienvenue sur le réseau pédagogique du Lycée Edgar Faure de Morteau </b></center></p>"
oIEDoc.WriteLn "<p><center><b> Nous sommes le " & Date & " : il est " & Time & "</b></center></p>"
oIEDoc.WriteLn "<p><center> Vous êtes connecté au domaine " & WshNetwork.UserDomain & "</center></p>"
oIEDoc.WriteLn "<p><center><font size=5> Le nom de votre station est : " & WshNetwork.ComputerName & "</font></center></p>"
oIEDoc.WriteLn "<p><br><br><center><b><font color=blue><font size=6> <u>Votre nom d'utilisateur est</u> : " & WshNetwork.UserName & "</font> </b></center></p>"

oIEDoc.WriteLn "<br><br><p><center><b><font color=red><font size=5> MESSAGE IMPORTANT </font> </b></center></p>"
oIEDoc.WriteLn "<p><center><b><font color=red>Cette station est utilisée par de nombreuses personnes </font> </b></center></p>"
oIEDoc.WriteLn "<p><center><b><font color=red>Veuillez ne pas en modifier la configuration.</font></b></center></p>"
oIEDoc.WriteLn "<p><center>Merci</center></p>"
oIEDoc.WriteLn "<p><center>Attendez SVP.</center></p>"
oIEDoc.WriteLn "<p><center>La fenêtre se fermera dans " & A & " " & N & ".</center></p>"
oIEDoc.WriteLn "</body>"
oIEDoc.WriteLn "</html>"

Do While Sc = Sc2
Sc2 = Second(Time)
Loop

Next
Set oIEDoc = Nothing
oIE.Quit
Set oIE = Nothing
Wscript.Quit 0

Lien vers le commentaire
Partager sur d’autres sites

Le problème semble avoir trouvé sa solution.

Ainsi, afin de signaler clairement à ceux qui ont un problème similaire qu'ils ont peut-être une solution toute trouvée (s'ils pensent à utiliser la fonction Recherche en indiquant le mot-clé "résolu" auparavant), et afin de signaler aux autres contributeurs qu'il est inutile de continuer à se creuser la tête sur le problème (à moins d'avoir des suppléments d'informations à apporter pour mieux comprendre ce qui posait problème), un modérateur a préfixé le titre du topic avec la mention [résolu].

Merci, à l'avenir, de bien vouloir prendre à votre charge cette mise à jour quand vous estimez que votre problème a été résolu de manière satisfaisante (et parallèlement, si le problème a disparu "mystérieusement", inutile d'induire les gens en erreur :P) Pour cela, p_edit.gif votre premier message :P

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Merci beaucoup, ça marche super bien.

 

he bien pas de quoi.

 

je précise quand même que ce n'est pas très propre.

donc cela ne marche que sur des pc puissant.

 

l'ideal étant de travailler sur le code HTML, mais la, je connais pas.

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, puisqu'on est en train de générer une page HTML pour gaver IE avec, il est tout à fait possible de faire le décompte directement dans la page, en JavaScript...

 

Petit TP pour ceux qui veulent :

- mettre le "20" dans un élément nommé

- ajouter un bloc JavaScript

- créer une fonction afficherTimer() qui prend en paramètre le nombre de secondes restante (et donc, décrémente + affiche ou ferme la fenêtre)

- initialiser l'affichage du timer

 

Vous avez trois heures. (sinon c'est moi qui viens poster le code ce soir) ;-)

Lien vers le commentaire
Partager sur d’autres sites

Et voilà ! Un petit compte à rebours

 

function timer(tempsRestant)
  {
 var reste = 10;
 var elementTexte = document.getElementById("compteur");

 // Récupération du temps restant s'il n'a pas été passé en paramètre (pas sympa !)
 if (tempsRestant != null) {
   reste = tempsRestant;
 } else {
   reste = parseInt(elementTexte.firstChild.data);
 }

 // Au cas où...
 if (isNaN(reste) || reste == null)
   reste = 10;

 // On décrémente le temps restant
 reste--;

 // On affiche le temps restant
 elementTexte.firstChild.data = reste;

 // On fait ce qui correspond au temps restant
 if (reste == 0) {
   // Récupération de tout le paragraphe
   elementTexte = document.getElementById("texte");
   // Vidage du contenu du paragraphe
   while (elementTexte.firstChild != null)
	 elementTexte.removeChild(elementTexte.firstChild);
   // Re-remplissage du paragraphe avec juste un texte...
   elementTexte.appendChild(document.createTextNode("BOUM !"));
   // ... rouge, grand et gras
   elementTexte.style.color = "#FF0000";
   elementTexte.style.fontSize = "xx-large";
   elementTexte.style.fontWeight = "bold";
 } else {
   // Pas encore fini ? On programme le prochain appel
   setTimeout("timer(" + reste + ")", 1000); // C'est en millisecondes
 }
  }

Evidemment, tu ne vas pas afficher "BOUM" mais tu vas plutôt faire un window.close() ...

Lien vers le commentaire
Partager sur d’autres sites

Ok, merci pour tout cela je regarde comment je peux mettre ça dans mon fichier vbs.

 

Ce qui se passe c'est que mon fichier vbs n'aime pas les { J'ai caractère incorrecte.

Et je ne sais pas par quoi remplacer cette {.

En fait je me pose la question si je peux mettre ce langage javascript dans le fichier vbs et si oui comment ?

Merci pour ton aide.

 

Sinon je mettrai résolu, comme j'en ai l'habitude, dès que cela fonctionnera. Pas de souci pour cela :P

Modifié par BJH
Lien vers le commentaire
Partager sur d’autres sites

L'interpréteur a du mal quand il y a des accolades dans les chaînes de caractères qui suivent les "oIEDoc.WriteLn" ?!?

Mince... :-/

 

Si vraiment c'est une limitation de wsh, tu peux peut-être mettre le contenu de ce script dans un fichier sur le disque et référencer ce fichier dans une balise <script> en utilisant l'attribut src="" et une url du type file://

<script type="text/javascript" src="file://C|/docume~1/alluse~1/timer.js"></script>

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...