Autohotkey 脚本在互联网重新连接时启动程序

Autohotkey 脚本在互联网重新连接时启动程序

我正在尝试编写一个脚本来监控互联网,如果断开连接,则运行 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

您需要html := UrlDownloadToVar("http://www.google.com")在第二次检查之前重新运行以更新该变量。

我认为最好运行一个 while 循环。这样,如果 Internet 连接没有恢复,它将继续等待。这样,您可以在更短的时间间隔内进行检查,并让脚本更快地做出响应。

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 语句之前。

相关内容