Я пытаюсь закодировать скрипт, который следит за интернетом и, если он отключается, запустить chrome.exe при переподключении.

Вот что я имею до сих пор;

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
        }
    }

Вопросы:

  • MsgBox, показывающий отключение от интернета, не появляется сразу, когда интернет отключается, это занимает около 6-7 секунд
  • Msgbox, подтверждающий переподключение и Chrome.exe не запускаются, когда интернет возвращается (и интернет определенно вернулся, и в течение 20000 миллисекунд - я проверял это вручную)

заранее спасибо

1 ответ1

0

Вам необходимо повторно запустить html := UrlDownloadToVar("http://www.google.com") перед второй проверкой, чтобы обновить эту переменную.

Я думаю, что было бы лучше запустить цикл пока. Таким образом, если интернет-соединение не вернется, оно будет ждать. Таким образом, вы можете проверять более короткие интервалы и быстрее реагировать на сценарий.

html := UrlDownloadToVar("http://www.google.com")
while(!html) {
    MsgBox,, Internet status, not working will check again later, 1
    sleep, 20000
    html := UrlDownloadToVar("http://www.google.com")
}
MsgBox,, Internet status, 2nd  check = working, 5
    Run chrome.exe
}

Если вы хотите открыть сообщение только один раз, вы можете поместить его в if(!html) {} перед оператором while.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .