Показано с 1 по 10 из 126

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #35
    Новичок
    Регистрация
    30.04.2011
    Возраст
    50
    Сообщений
    13
    Вес репутации
    183

    По умолчанию Re: Примеры ahk-скриптов

    Долго искал и не нашел. Задача у меня такая. Нужно чтобы ноутбук засыпал при переключении на питание от батареи через 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
    Последний раз редактировалось se13; 13.06.2011 в 12:02.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •