インターネットを監視し、切断された場合に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")
その変数を更新するには、2 回目のチェックの前に再実行する必要があります。
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 ステートメントの前にそれを置くことができます。