Показать сообщение отдельно
Старый 10.08.2015, 12:25   #32
Lexx09
Старший Пользователь
 
Регистрация: 18.04.2009
Город: Краснодар
Регион: 23, 93
Машина: Приора хэтчбек
Сообщений: 977
Lexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud ofLexx09 has much to be proud of
По умолчанию

Цитата:
Сообщение от Krysanov Посмотреть сообщение
Что то никто не отвечает... видать что то застопорилось..
LEXX09 посмотри, пожалуйста, этот код.. будет работать? Или что-нибудь добавить нужно?
Замысел в том, чтобы перед сном GPSGATE, икар, программа-звонилка для интернета закрывались, а после пробуждения, в том числе длительного трех и более часов запускались
В этом коде не отслеживается переход в сон. Соответственно, перед сном ничего закрываться не будет. Закрытие программ и их запуск будут происходить после выхода из сна.

Чтобы закрывать программы при переходе в сон - нужно отслеживать сообщение PBT_APMSUSPEND. См. тут.

ProcessClose("SP Dialer.exe.exe") - один exe лишний, должно быть ProcessClose("SP Dialer.exe")

В общем, будет примерно так:
Код:
#pragma compile(Icon, "C:\Program Files (x86)\AutoIt3\Icons\au3script_v9.ico")
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Run_AU3Check=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <MsgBoxConstants.au3>

Global $PBT_APMSUSPEND = 0x0004
Global $PBT_APMRESUMESUSPEND = 0x0007

$hGUI = GUICreate("Restart", 100, 100, 1, 1)
GUIRegisterMsg($WM_POWERBROADCAST, "Standby")

; Запускаем iCarDS
ShellExecute("C:\Program Files (x86)\TipTop software\iCar DS\iCarDS.exe")

While 1
    Sleep(100)
WEnd

Func Standby($hWnd, $Msg, $wParam, $lParam)
    Select
        ; Если вход в спящий режим, то...
        Case $wParam = $PBT_APMSUSPEND Then
            Suspend()
        ; Если выход из спящего режима, то...
        Case $wParam = $PBT_APMRESUMESUSPEND Then
            ResumeSuspend()
        Case Else
    EndSelect
EndFunc

; Вход в спящий режим
Func Suspend()

    ; Закрываем GpsGate, если запущена
    If ProcessExists("GpsGateXP.exe") Then
        ProcessClose("GpsGateXP.exe")
    EndIf

    ; Закрываем программу по коннекту инернета, если запущена
    If ProcessExists("SP Dialer.exe") Then
        ProcessClose("SP Dialer.exe")
    EndIf

    ; Закрываем iCarDS, если запущена
    If ProcessExists("iCarDS.exe") Then
        ProcessClose("iCarDS.exe")
    EndIf

EndFunc

; Выход из спящего режима
Func ResumeSuspend()

    ; Запускаем GpsGate
    ShellExecute("C:\Program Files (x86)\Franson\GpsGate 2.0\GpsGateXP.exe")

    ; Запускаем программу по коннекту инернета
    ShellExecute("C:\Program Files (x86)\SP Dialer\SP Dialer.exe")

    ; Запускаем iCarDS
    ShellExecute("C:\Program Files (x86)\TipTop software\iCar DS\iCarDS.exe")

EndFunc
__________________
Приора хэтчбек
Win7 x64 Pro, Intel Core i3-3240 Ivy Bridge 2x3.4GHz HT, DDR3 2x4Gb, SSD SiliconPower Ace A55 128GB SATAIII, ASRock B75M-ITX, M2-ITX rev.2F, GPS Beitian BN-808, Logitech Wireless Touch Keyboard K400r, ИК-пульт Prology RCD-350, круиз-контроль...
Lexx09 вне форума   Ответить с цитированием