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

vbscript - action périodique

4 réponses
Avatar
Gilles RONSIN
Salut,

pour simuler un de nos dispositifs, j'ai écrit un vbscript qui
régulièremet envoie des datas à un serveur.
Actuellement paramétré pour poster toutes les 5 min un nouveau point.
--------------------------------
URL = "http://monsite/comm.php"

Delay = 5
indexc = 0

Wscript.echo "POST to " & URL & vbcrlf & _
"every " & Delay & " min " & vbcrlf & vbcrlf


Do
sNow = Now()
temp = split(sNow,"/")
sDate = Mid(temp(2),3,2) & "/" & temp(1) & "/" & temp(0) & _
"," & Mid(sNow,12)
ture = 30+7.5*cos(Timer()/3600)
tosend = "_c=" & indexc & "&ture=" & ture
wscript.echo "-> " & toSend
wscript.echo "<- " & HTTPPost(URL, toSend)
indexc = indexc + 1
iTimer = Timer() + Delay*60
Do While Timer()<iTimer
Loop
loop

Function HTTPPost(sUrl, sRequest)
Set oHTTP = CreateObject("MSXML2.ServerXMLHTTP")
oHTTP.open "POST", sUrl, false
oHTTP.setRequestHeader "User-Agent","MC100"
oHTTP.setRequestHeader "Content-Type", "application/x-www-form-
urlencoded"
oHTTP.setRequestHeader "Content-Length", Len(sRequest)
oHTTP.send sRequest
HTTPPost = oHTTP.responseText
End Function

Function HTTPGet(URL)
Set oHTTP = CreateObject("MSXML2.ServerXMLHTTP")
oHTTP.open "GET",URL,false
oHTTP.setRequestHeader "User-Agent","XXX"
oHTTP.send ""
HTTPGet = oHTTP.responseText
End Function

------------------------------------------------

J'ai 2 problèmes (qui sans doute doivent se résoudre en même temps)
- 1) ça ne passe pas minuit (forcément Timer() y est réinitialisé à
0)
- 2) comme le script passe la majorité de son temps à attendre les 5
min, il occupe 100% du temps processeur.

Question : existe t'il un moyen dans un vbscript de déclancher une
fonction sur un timer (qui ne soit pas dépendant du jour) ?

Merci pour vos suggestions

4 réponses

Avatar
Gilles LAURENT [MVP]
"Gilles RONSIN" a écrit dans le message de
news:
| Salut,

Bonjour,

| J'ai 2 problèmes (qui sans doute doivent se résoudre en même temps)
| - 1) ça ne passe pas minuit (forcément Timer() y est réinitialisé à
| 0)
| - 2) comme le script passe la majorité de son temps à attendre les 5
| min, il occupe 100% du temps processeur.

| iTimer = Timer() + Delay*60
| Do While Timer()<iTimer
| Loop

WScript.Sleep (1000 * 60 * Delay)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Gilles RONSIN
"Gilles LAURENT [MVP]" , le jeu. 22 nov. 2007
11:35:31, écrivait ceci:

Re,

| iTimer = Timer() + Delay*60
| Do While Timer()<iTimer
| Loop

WScript.Sleep (1000 * 60 * Delay)


Tout bêtement ...

Grand merci ;-)

Avatar
F. Dunoyer [MVP]
Gilles RONSIN avait prétendu :
Salut,

pour simuler un de nos dispositifs, j'ai écrit un vbscript qui
régulièremet envoie des datas à un serveur.
Actuellement paramétré pour poster toutes les 5 min un nouveau point.

J'ai 2 problèmes (qui sans doute doivent se résoudre en même temps)
- 1) ça ne passe pas minuit (forcément Timer() y est réinitialisé à
0)
- 2) comme le script passe la majorité de son temps à attendre les 5
min, il occupe 100% du temps processeur.

Question : existe t'il un moyen dans un vbscript de déclancher une
fonction sur un timer (qui ne soit pas dépendant du jour) ?

Merci pour vos suggestions


Une autre voie c'est d'utiliser le plannificateur de tache.
et tu relances ton script toutes les 5 minutes.
Au moins si le script se crache (ou que quelqu'un le supprime) 5
minutes apres il sera automatiquement relancé

--
François Dunoyer [MVP Windows Server / Security]
Des infos en Vrac : http://fds.mvps.org/ta/envrac.htm
Site perso : http://www.fdunoyer.net

Avatar
Gilles RONSIN
F. Dunoyer [MVP] ~.net>, le dim. 25
nov. 2007 22:31:02, écrivait ceci:

Salut voisin,

Une autre voie c'est d'utiliser le plannificateur de tache.
et tu relances ton script toutes les 5 minutes.
Au moins si le script se crache (ou que quelqu'un le supprime) 5
minutes apres il sera automatiquement relancé


oui j'avais pensé à cette solution. Par contre comme j'ai une boucle
avec des calculs, ça complique inutilement l'algo.
La solution de Gilles est parfaite pour moi.
Merci en tout cas pour ta suggestion