인터넷 재연결 시 프로그램을 시작하는 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초 정도 걸립니다.
  • 인터넷이 다시 연결될 때 다시 연결을 확인하는 메시지 상자 및 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 문 앞에 메시지를 넣을 수 있습니다.

관련 정보