Скрипт: Возврат из режима ожидания и переход в спящий режим
После установки CarPC, очень стала надоедать долгая загрузка системы после непродолжительного отсутствия (< часа).
Так что после некоторых исследований был написан vb-скрипт, "уводящий" ПК в спящий(Hibernate) режим через полчаса(или любой др. промежуток времени) после того как система была оставлена в ждущем(Standby) режиме.
Для M2-ATX нужно выставить перемычки в режим отключения питания на CarPC через 2 часа после откл. ACC (можно и больше). На др. БП не знаю.
Инструкция:
1. Скачать и распаковать WOSB( Скачать тут!) в "C:\WakeupOnStandBy"
2. Создать в этой директории текстовый файл например autoHibernate.vbs и скопировать туда скрипт
3. Создать ярлык к этому файлу и прописать его в автозагрузку
4. Выставить действие по-умолчанию при нажатие кнопки Power - режим ожидания(Standby, Sleep)
5. Перезагрузить ПК
PS: Убедитесь, что у Вас активирован режим Hibernate.
Желающие могут добавить свои действия перед уходом в Hibernate.
Код:
wosbExe = "c:\WakeupOnStandBy\wosb.exe" ' Путь к wosb.exe
sleepTime = 30 ' Кол-во минут ожидания
Set oShell = CreateObject("WScript.Shell")
Set colMonitoredEvents = GetObject("winmgmts:").ExecNotificationQuery("Select * from Win32_PowerManagementEvent")
isHibernate = False
suspendTime = Now
resumeTime = Now
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
Select Case objLatestEvent.EventType
Case 4
' Suspend
If Not isHibernate Then
suspendTime = Now
oShell.Run wosbExe & " /systray /run tm=+" & sleepTime & ":00", 0, False
End If
Case 7, 18
' 7 - Resume, 18 - Automatic Resume
resumeTime = Now
If Not isHibernate Then
diff = DateDiff("n", suspendTime, resumeTime)
If diff >= sleepTime And diff <= sleepTime * 2 Then
isHibernate = True
oShell.Run wosbExe & " /closeall", 0, False
oShell.Run "rundll32.exe powrprof.dll,SetSuspendState", 0, False
Else
isHibernate = False
oShell.Run wosbExe & " /closeall", 0, False
End If
Else
isHibernate = False
End If
End Select
Loop
|