Простое решение - написать программу AutoIt, которая будет пытаться пропинговать распознаватель DNS вашего интернет-провайдера. Это единственный верный способ определить, "подключены" ли вы к Интернету или нет, так как не всегда надежно пропинговать сторонние веб-сайты.
Я бы настроил его на пинг каждую минуту, и если в течение 5 минут не будет получен ответ, выключите компьютер (или переведите его в спящий режим). К счастью, AutoIt имеет встроенные функции Ping()
и Sleep()
.
Простой скрипт будет выглядеть следующим образом:
Local $i = 0
While $i < 5 ; Looping until we hit 5 attempts...
If Ping("12.34.56.78", 10000) == 0 Then ; If we couldn't ping...
$i = $i + 1 ; Increment the counter.
Else ; Else, if we could,
$i = 0 ; Reset the counter.
EndIf
Sleep(60000) ; Finally, loop every minute.
WEnd
; If the script gets here, we missed 5 pings - take action.
Shutdown(32) ; See the Shutdown() documentation, this makes the PC sleep.
; http://autoitscript.com/autoit3/docs/functions/Shutdown.htm
Перед тем, как запустить компьютер на ночь, вы можете просто выполнить приведенный выше скрипт. Для продолжения обычного использования компьютера просто закройте скрипт.
Отказ от ответственности: я не тестировал этот код (я написал его быстро в Notepad++), но он выглядит жизнеспособным.