Цитата:
Сообщение от 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