J'essaie de coder un script qui surveille Internet, et s'il se déconnecte pour exécuter chrome.exe sur reconnexion .
Voici ce que j'ai jusqu'ici;
UrlDownloadToVar(URL) {
ComObjError(false)
WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebRequest.Open("GET", URL)
WebRequest.Send()
Return WebRequest.ResponseText
}
#Persistent
SetTimer, CheckInternet, 100
Return
CheckInternet:
html := UrlDownloadToVar("http://www.google.com")
if html
{}
else
{
MsgBox,, Internet status, not working will check again later, 1
sleep, 20000
if html
{
MsgBox,, Internet status, 2nd check = working, 5
Run chrome.exe
}
}
Les problèmes sont:
- La MsgBox indiquant la déconnexion Internet n'apparaît pas immédiatement lorsque Internet se déconnecte, cela prend comme 6-7 secondes
- Msgbox confirmant la reconnexion & amp; Chrome.exe ne sont pas lancés lorsque Internet revient (et Internet est définitivement revenu, et dans les 20000 millisecondes - j'ai testé manuellement cela)
Merci d'avance
UrlDownloadToVar
juste une fois. Vous devez refaire le test en le refaisant avant de vérifier à nouveau le contenu de lahtml
var.Réponses:
Vous devez recommencer
html := UrlDownloadToVar("http://www.google.com")
avant la deuxième vérification pour mettre à jour cette variable.Je pense qu'il serait préférable de courir une boucle while. De cette façon, si la connexion Internet ne revient pas, elle restera en attente. De cette façon, vous pouvez vérifier des intervalles plus courts et que le script réponde plus rapidement.
Si vous voulez seulement faire apparaître le message une fois, vous pouvez le mettre dans un
if(!html) {}
avant la déclaration while.la source