PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Оптимизация ОС (http://pccar.ru/forumdisplay.php?f=29)
-   -   Скрипт: Возврат из режима ожидания и переход в спящий режим (http://pccar.ru/showthread.php?t=7261)

apka 31.12.2008 18:54

Скрипт: Возврат из режима ожидания и переход в спящий режим
 
После установки 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


Deemon 28.08.2009 15:41

Полезный скрипт. Но на ЕЕЕ РС замечено,что правильно работает через раз. Скорее всего это глюки железа,но как знать. Пока пытаюсь понять.

Iquos 11.09.2009 08:25

А зачем это все? WinXP у меня сама уходит в гибернейт после получаса нахождения в ждущем режиме. Настраивал все в настройках электропитания, в панели инструментов.. Зачем скрипт? :)

s.m. 11.09.2009 13:16

Цитата:

Сообщение от Iquos (Сообщение 110444)
А зачем это все? WinXP у меня сама уходит в гибернейт после получаса нахождения в ждущем режиме. Настраивал все в настройках электропитания, в панели инструментов.. Зачем скрипт? :)

И что, в винде можно выполнить что-то ПЕРЕД уходом в это состояние?
Вообще, ИМХО в винде XP он толком не работает. Несколько раз пробовал пользоваться - или виснет или выходит дольше холодного старта (при котором и так все нужное в автозагрузке)

Hamster 11.09.2009 19:14

Цитата:

Сообщение от Iquos (Сообщение 110444)
А зачем это все? WinXP у меня сама уходит в гибернейт после получаса нахождения в ждущем режиме. Настраивал все в настройках электропитания, в панели инструментов.. Зачем скрипт? :)

У тебя возможно ноут? На обычном компе настроить WINXP уходить в гибернейт после хх минут стендбая нельзя... :(

Но, скрипт действительно никчему - требуемые функции ужо есть в самой программе :)

Вот, в ФАКе ясно написано что нуна сделать: http://www.dennisbabkin.com/php/faq.php?what=wosb#14

zzmakszz 11.09.2009 21:19

Цитата:

Сообщение от Hamster (Сообщение 110509)
У тебя возможно ноут? На обычном компе настроить WINXP уходить в гибернейт после хх минут стендбая нельзя... :(

На обычном компе можно это всё сделать, только что попробовал и всё работает, сначало уходит в ждущий потом через хх минут включается системник перезаписывает данные из памяти на HDD и уходит в спящий режим. вечером попробую это сделать в машине

zzmakszz 11.09.2009 21:22

вот скрин
http://i066.radikal.ru/0909/41/928edd10987ct.jpg

Hamster 11.09.2009 21:44

Цитата:

Сообщение от zzmakszz (Сообщение 110536)
На обычном компе можно это всё сделать, только что попробовал и всё работает, сначало уходит в ждущий потом через хх минут включается системник перезаписывает данные из памяти на HDD и уходит в спящий режим. вечером попробую это сделать в машине

СЕЕЕКУНДОЧКУ!
Так как ты настроил - не вопрос. НО! Нам нужно, чтобы комп уходил в ждущий не через некоторое время (как в твоем примере), а по Inginiton OFF. А вот потом, через время хх переходить в хибернейт. Чувствуешь разницу :) ?

zzmakszz 11.09.2009 21:56

Цитата:

Сообщение от Hamster (Сообщение 110541)
СЕЕЕКУНДОЧКУ!
Так как ты настроил - не вопрос. НО! Нам нужно, чтобы комп уходил в ждущий не через некоторое время (как в твоем примере), а по Inginiton OFF. А вот потом, через время хх переходить в хибернейт. Чувствуешь разницу :) ?

согласен, я понял вчём ошибка, щас попробую

zzmakszz 11.09.2009 21:59

Ссори, ни чего не получается :no2:


Часовой пояс GMT +4, время: 18:46.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot