Script Autohotkey para iniciar o programa na reconexão da Internet

0

Estou tentando codificar um script que monitora a Internet e se desconectar para executar o chrome.exe na reconexão .

Aqui está o que eu tenho até agora;

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

Os problemas são:

  • A MsgBox mostrando a desconexão da Internet não aparece imediatamente quando a internet desconecta, leva de 6 a 7 segundos
  • Msgbox confirmando reconexão & O Chrome.exe não é iniciado quando a Internet retorna (e a Internet definitivamente retornou, e dentro de 20000 milissegundos - testei manualmente isso)

Obrigado antecipadamente

    
por Ron147 07.06.2018 / 16:38

1 resposta

0

Você precisa executar novamente o html := UrlDownloadToVar("http://www.google.com") antes da segunda verificação para atualizar essa variável.

Acho que seria melhor executar um loop while. Desta forma, se a conexão com a Internet não retornar, ela continuará aguardando. Dessa forma, você pode verificar intervalos mais curtos e fazer com que o script responda mais rapidamente.

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
}

Se você quiser apenas exibir a mensagem uma vez, poderá colocar isso em uma declaração if(!html) {} before while.

    
por 07.06.2018 / 18:07