인터넷을 모니터링하는 스크립트를 코딩하려고 하는데 연결이 끊어지면 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초 정도 걸립니다.
- 인터넷이 다시 연결될 때 다시 연결을 확인하는 메시지 상자 및 Chrome.exe가 시작되지 않습니다. (그리고 인터넷은 확실히 돌아왔고 20000밀리초 이내에 수동으로 테스트했습니다.)
미리 감사드립니다
답변1
html := UrlDownloadToVar("http://www.google.com")
해당 변수를 업데이트하려면 두 번째 검사 전에 다시 실행해야 합니다 .
while 루프를 실행하는 것이 더 나을 것이라고 생각합니다. 이렇게 하면 인터넷 연결이 다시 연결되지 않으면 계속 대기하게 됩니다. 이렇게 하면 더 짧은 간격으로 확인하고 스크립트가 더 신속하게 응답하도록 할 수 있습니다.
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 문 앞에 메시지를 넣을 수 있습니다.