![]() |
|
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
![]() Регистрация: 25.04.2011
Возраст: 47
Регион: 31
Сообщений: 36
![]() |
![]() Долго искал и не нашел. Задача у меня такая. Нужно чтобы ноутбук засыпал при переключении на питание от батареи через 60 секунд и перед сном нажимал стоп, Send, {Media_Stop}. Потом через 5 минут просыпался и уходил в гибернацию. В самой винде7 есть такая возможность, но если запущена навигация или какая еще программа, которую виндовс7 расценивает как мультимедийную, то у ноутбука бессонница. Есть куски скриптов которые следят за состоянием питания, отправляют в сон и гибернацию, но нехватает куска который бы пробудил компьютер из режима сна через заданное время. Пробовал усыплять ноут первыми двумя кусками, но в гибернацию он сам не уходит. Помогите собрать скрипт из этих кусков и дописать недостающий. Ещё как вариант можно программно создавать задачу в планировщике, но как это сделать не нашел.
Код:
кусок слежения за состоянием питания ноута #SingleInstance force ; перезагрузить скрипт, если он уже запущен #NoEnv ; запрещаем имена переменных как у переменных окружения SendMode Input ; ускорренный ввод #Persistent ; держать скрипт запущенным SetTitleMatchMode 2 ; 2 - заголовок окна должен содержать значение, заданное в WinTitle DetectHiddenWindows, On SetTimer, GetPowerSource, 5000 return ; End of main program GetPowerSource: VarSetCapacity(powerStatus, 1+1+1+1+4+4) success := DllCall("GetSystemPowerStatus", "UInt", &powerStatus) acLineStatus:=ReadInteger(&powerstatus,0,1,false) batteryFlag:=ReadInteger(&powerstatus,1,1,false) batteryLifeTime:=ReadInteger(&powerstatus,4,4,fals e) batteryFullLifeTime:=ReadInteger(&powerstatus,8,4, false) output=AC Status: %acLineStatus%`nBattery Flag: %batteryFlag%`nBattery Life (percent): %batteryLifePercent%`nBattery Life (time): %batteryLifeTime%`nBattery Life (full time): %batteryFullLifeTime% If %acLineStatus% = 0 { sleep 10000 VarSetCapacity(powerStatus, 1+1+1+1+4+4) success := DllCall("GetSystemPowerStatus", "UInt", &powerStatus) acLineStatus:=ReadInteger(&powerstatus,0,1,false) If %acLineStatus% = 0 { Send, {Media_Stop} ExitApp } else Return } else Return ReadInteger( p_address, p_offset, p_size, p_hex=true ) { value = 0 old_FormatInteger := a_FormatInteger if ( p_hex ) SetFormat, integer, hex else SetFormat, integer, dec loop, %p_size% value := value+( *( ( p_address+p_offset )+( a_Index-1 ) ) << ( 8* ( a_Index-1 ) ) ) SetFormat, integer, %old_FormatInteger% return, value } кусок отправки в режим сна Suspend: Gui, Submit, NoHide if force DllCall("PowrProf\SetSuspendState", "int", 0, "int", 1, "int", 0) else DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0) Return кусок отправки в режим гибернации Hibernate: Gui, Submit, NoHide if force DllCall("PowrProf\SetSuspendState", "int", 1, "int", 1, "int", 0) else DllCall("PowrProf\SetSuspendState", "int", 1, "int", 0, "int", 0) Return |
![]() |
![]() |
![]() |
#2 |
Пользователь
![]() Регистрация: 25.04.2011
Возраст: 47
Регион: 31
Сообщений: 36
![]() |
![]() Есть мысль, но пока как сделать не знаю. Нужно программно включать и выключать задачу в планировщике. То есть. Скрипт перед тем как отправит комп спать, включает задачу, в которой прописанно например запустить скрипт который отправит комп в гибернацию, а для этого нужно разбудить комп. Не получается запустить задачу перед сном и соответственно выключить перед гибернацией. Есть какие мысли, или другие варианты?
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
![]() Регистрация: 22.10.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Toyota Camry v40
Сообщений: 33
![]() |
![]() Цитата:
http://www.compcar.ru/forum/showthread.php?t=7484 Единственное там осуществяется переход по нажатию кнопки питания (физически, не программно) ![]() ![]()
__________________
Комп в тачке: ![]() Установка: [######80%####__] Настройка: [#####_60%_______] |
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
![]() Регистрация: 25.04.2011
Возраст: 47
Регион: 31
Сообщений: 36
![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
![]() Регистрация: 22.10.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Toyota Camry v40
Сообщений: 33
![]() |
![]() Цитата:
__________________
Комп в тачке: ![]() Установка: [######80%####__] Настройка: [#####_60%_______] |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|