Просмотр полной версии : Скрипт: Возврат из режима ожидания и переход в спящий режим
После установки CarPC, очень стала надоедать долгая загрузка системы после непродолжительного отсутствия (< часа).
Так что после некоторых исследований был написан vb-скрипт, "уводящий" ПК в спящий(Hibernate) режим через полчаса(или любой др. промежуток времени) после того как система была оставлена в ждущем(Standby) режиме.
Для M2-ATX нужно выставить перемычки в режим отключения питания на CarPC через 2 часа после откл. ACC (можно и больше). На др. БП не знаю.
Инструкция:
1. Скачать и распаковать WOSB(Скачать тут! (http://www.dennisbabkin.com/php/download.php?what=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
Полезный скрипт. Но на ЕЕЕ РС замечено,что правильно работает через раз. Скорее всего это глюки железа,но как знать. Пока пытаюсь понять.
А зачем это все? WinXP у меня сама уходит в гибернейт после получаса нахождения в ждущем режиме. Настраивал все в настройках электропитания, в панели инструментов.. Зачем скрипт? :)
А зачем это все? WinXP у меня сама уходит в гибернейт после получаса нахождения в ждущем режиме. Настраивал все в настройках электропитания, в панели инструментов.. Зачем скрипт? :)
И что, в винде можно выполнить что-то ПЕРЕД уходом в это состояние?
Вообще, ИМХО в винде XP он толком не работает. Несколько раз пробовал пользоваться - или виснет или выходит дольше холодного старта (при котором и так все нужное в автозагрузке)
А зачем это все? WinXP у меня сама уходит в гибернейт после получаса нахождения в ждущем режиме. Настраивал все в настройках электропитания, в панели инструментов.. Зачем скрипт? :)
У тебя возможно ноут? На обычном компе настроить WINXP уходить в гибернейт после хх минут стендбая нельзя... :(
Но, скрипт действительно никчему - требуемые функции ужо есть в самой программе :)
Вот, в ФАКе ясно написано что нуна сделать: http://www.dennisbabkin.com/php/faq.php?what=wosb#14
zzmakszz
11.09.2009, 21:19
У тебя возможно ноут? На обычном компе настроить WINXP уходить в гибернейт после хх минут стендбая нельзя... :(
На обычном компе можно это всё сделать, только что попробовал и всё работает, сначало уходит в ждущий потом через хх минут включается системник перезаписывает данные из памяти на HDD и уходит в спящий режим. вечером попробую это сделать в машине
zzmakszz
11.09.2009, 21:22
вот скрин
http://i066.radikal.ru/0909/41/928edd10987ct.jpg (http://radikal.ru/F/i066.radikal.ru/0909/41/928edd10987c.jpg.html)
На обычном компе можно это всё сделать, только что попробовал и всё работает, сначало уходит в ждущий потом через хх минут включается системник перезаписывает данные из памяти на HDD и уходит в спящий режим. вечером попробую это сделать в машине
СЕЕЕКУНДОЧКУ!
Так как ты настроил - не вопрос. НО! Нам нужно, чтобы комп уходил в ждущий не через некоторое время (как в твоем примере), а по Inginiton OFF. А вот потом, через время хх переходить в хибернейт. Чувствуешь разницу :) ?
zzmakszz
11.09.2009, 21:56
СЕЕЕКУНДОЧКУ!
Так как ты настроил - не вопрос. НО! Нам нужно, чтобы комп уходил в ждущий не через некоторое время (как в твоем примере), а по Inginiton OFF. А вот потом, через время хх переходить в хибернейт. Чувствуешь разницу :) ?
согласен, я понял вчём ошибка, щас попробую
zzmakszz
11.09.2009, 21:59
Ссори, ни чего не получается :no2:
согласен, я понял вчём ошибка, щас попробую
Да я уж пробовал 100 раз. Проблема в том, что если в свойствах электропитания выставить для ждущего "никогда" а для хибернейта 20 мин, то комп в хиберней всегдя будет через 20 мин уходить, даже когда он работает...
Утилитка, короче, весьма полезная :) Я ее давно пользую. Кстати, по-моему она входит в дистриб RoadRunner.
мне кажется что в четвертой строчке
= Set colMonitoredEvents = GetObject("winmgmts:").ExecNotificationQuery("Select * from Win32_PowerManagementEvent") =
скрипта ошибка. или я не прав?
мне кажется что в четвертой строчке
= Set colMonitoredEvents = GetObject("winmgmts:").ExecNotificationQuery("Select * from Win32_PowerManagementEvent") =
скрипта ошибка. или я не прав?
Какая разница? Я ж писал - сам скрипт не нужен, утилиты достаточно, в ней все есть.
Извините, не внимательно читал. Спасибо за дополнительный ответ.
Здравствуйте! Может быть туплю, что-то не так делаю, но все это работает у меня только когда непосредственно запускаю bat-файл. Из RR просто переходит в режим по настройке перемычек на блоке питания (в "ExecTBL.ini" прописал строчку). Поясните пожалуйста как надо настроить питание на БП и в свойсвах "питание". Спасибо.
zamalatb
15.04.2010, 11:17
с Centrafuse 3.1 ктото настраивал? сделал все как в ФАКе, по игнитион в офф комп уходит в слип, потом через время в хибернейт. НО, когда включаю его после слипа он все равно уходит в хибернейт через это время...в Центрефуге есть опция выполнять скрипт при StandBY туда батник и добавил. В чем ошибка подскажите пожалуйста?
Еще вопрос что автор программы в факе имел ввиду под этим требованием?
Advanced Power Management (APM) in PC to be able to delay power-off for at least the time period required for system to stay in stand-by mode (20 minutes in this case). If this option is supported, set it to at least 30 minutes for this question;
zamalatb
16.04.2010, 12:29
решил проблему, после возврата из стендбая запускается батник с командой wosb.exe /closeall
А как сдесать чтобу при выкл. зажигание комп уходил в ждущий, а через например мин.30-40 отключался полностью, т.к. у меня с "твердотелки" быстрее загружается полностью, чем выходит из спящего режима...
zamalatb
16.04.2010, 18:28
А как сдесать чтобу при выкл. зажигание комп уходил в ждущий, а через например мин.30-40 отключался полностью, т.к. у меня с "твердотелки" быстрее загружается полностью, чем выходит из спящего режима...
у меня тоже твердотелка н оне заметил что быстрее, винда может и быстро грузится а вот центрифуга...
ну в батнике вместо hybernetion напиши shutdown
Поставил перемычку на m2-atx на отключение питания через 2 часа, с утилитой поступил как написано выше.
в файле sleep.bat прописал standby 10 минут, после этого hibernation.
Проверил, первый раз сработало.
Оставил машиу на несколько часов, вернулся, включаю зажигание и происходит загрузка Windows, а не возврат из сна.
Что сделал не так, у кого какие мысли? Может стоит перемычку на БП поставить таким образом, чтобы питание никогда не отрубалось?
Сделал следующее:
перемычку поставил на m2 atx на Р8 (10минут ждущий режим- полное отрубание через час).
В файле sleep.bat указал ждущий режим через 5 минут, затем спящий.
Всё заработало нормально.
= Nicki =
12.09.2010, 11:17
Но, скрипт действительно никчему - требуемые функции ужо есть в самой программе :)
Вот, в ФАКе ясно написано что нуна сделать: http://www.dennisbabkin.com/php/faq.php?what=wosb#14
скрипт нужен для того чтобы не использовать фронт енд для этого. wosb или батник на его основе кто-то должен запустить - это и делает скрипт. Я использую RR DS (http://pccar.ru/showthread.php?t=10039), программа только развивается есть некоторые проблемы с отработкой событий при засыпании. Поэтому и обратился к скрипту. Скрипт из шапки у меня не заработал, поэтому немного "по испортив" исходный код получилось вот это:
wosbExe = "c:\WakeupOnStandBy\wosb.exe" ' Путь к wosb.exe
sTimeInsuspend = "15"
Set oShell = CreateObject("WScript.Shell")
Set colMonitoredEvents = GetObject("winmgmts:").ExecNotificationQuery("Select * from Win32_PowerManagementEvent")
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
Select Case objLatestEvent.EventType
Case 4
'Suspend
oShell.Run wosbExe & " /systray /run time=+" & sTimeInsuspend & ":00 hibernatewait=0",0,False
Case 18
' 7 - Resume, 18 - Automatic Resume
oShell.Run wosbExe & " /closeall", 0, False
End Select
Loop
Делаем по инструкции из шапки, только вставляем код из этого поста. На ББ протестировал. Нажимаем кнопку Power на системнике - комп уходит в Ждущий режим, через 15 минут просыпается и уходит в Спящий режим. Думаю автор темы не будет против?
= Nicki =
13.09.2010, 14:49
Блин на ББ работает как часы, на писикаре не успевает отработать wosb.exe - не успевает инициализировать счетчик по которому проснется комп от ждущего режима =(
Как бы притормозить из скрипта на 3 секунды уход в ждущий режим?
Написал с горя программульку, кому интересно, смотреть здесь (http://pccar.ru/showthread.php?t=15035) :)
Работает на vBulletin® версия 3.8.4. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot