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