Показать сообщение отдельно
Старый 29.08.2015, 10:25   #131
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
По умолчанию

Попробуй так:
Код:
#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>
; Это команда на сон
Global $PBT_APMSUSPEND = 0x0004
Global $PBT_APMRESUMESUSPEND = 0x0007

Local $omyerror
$omyerror = ObjEvent("AutoIt.Error", "MyErrFunc")
Dim $vol_from_speed[201]
Global $rr = ObjCreate("RideRunner.sdk")

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

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

; Запускаем Bluestacks вместе с лаунчером MyLauncher
$Bluestacks_path = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Bluestacks", "InstallDir")
ShellExecute($Bluestacks_path & "HD-RunApp.exe", "-p ru.znalexey.mylauncher -a ru.znalexey.mylauncher.LauncherActivity")

; Запускаем программу по коннекту интернета (У кого нет такой программы, тогда эту и следующие строки удалить!)
ShellExecute("C:\Program Files (x86)\SP Dialer\SP Dialer.exe")
	
_main()

Func myerrfunc()
	$hexnumber = Hex($omyerror.number, 8)
	Exit
EndFunc

Func _initvolarray()
	$delta = 0
	$vol_from_speed[0] = $delta
	For $i = 0 To 150 Step 10
		$tmp_vol_from_speed = $rr.getinfo("=$vol_from_speed_" & $i + 10 & "$") / 10
		For $j = 1 To 10 Step 1
			$delta = $delta + $tmp_vol_from_speed
			$vol_from_speed[$i + $j] = Round($delta, 2)
		Next
	Next
	For $i = 162 To 200 Step 1
		$delta = $delta + $tmp_vol_from_speed
		$vol_from_speed[$i] = Round($delta, 2)
	Next
EndFunc

Func _main()
	Global $iswork = 1
	Global $isrun = 0
	Global $name = "[CLASS:TSkinForm]"
	Global $namecontrol = ""
	Global $foobarwindowtitleprev = ""
	Global $speed_prev = Round(Number($rr.getinfo("$IsDriveSpd$")), 0)
	Global $speed_prev_round = Round($speed_prev, -1)
	Global $vol_from_speed_full = 0
	Global $vol_min = Number($rr.getinfo("=$vol_from_speed_min$"))
	Global $vol_max = Number($rr.getinfo("=$vol_from_speed_max$"))
	_initvolarray()
	$rr.execute("SetVar;vol_from_speed_full;" & Round($vol_from_speed[$speed_prev], 2))
	While $iswork
		$handle = WinGetHandle($name)
		If @error Then
			If $isrun Then
				$iswork = 0
			EndIf
		Else
			$isrun = 1
			If WinActive($name) OR WinActive("[CLASS:TOverlayForm]") OR WinActive("[CLASS:TPopupSkinForm]") OR WinActive("[CLASS:TModalSkinForm]") OR WinActive("[CLASS:TMediaForm]") Then
				$rr.execute("SETIND;!iCarDS_Active;ON")
			Else
				$rr.execute("SETIND;!iCarDS_Active;OFF")
			EndIf
		EndIf
		$volume = StringSplit($rr.getinfo("VOLUME"), "%")
		If @error = 0 Then
			$current_volume = Number($volume[1])
		Else
			$current_volume = 0
		EndIf
		$speed_current = Round(Number($rr.getinfo("$IsDriveSpd$")), 0)
		If $speed_current > $speed_prev Then
			$delta_vol = Round($vol_from_speed[$speed_current] - $vol_from_speed[$speed_prev], 2)
			If $current_volume + $delta_vol < $vol_max Then $rr.execute("volperc+;" & $delta_vol & "||SetVar;vol_from_speed_full;" & $vol_from_speed[$speed_current])
		Else
			If $speed_current < $speed_prev Then
				$delta_vol = Round($vol_from_speed[$speed_prev] - $vol_from_speed[$speed_current], 2)
				If $current_volume - $delta_vol > $vol_min Then $rr.execute("volperc-;" & $delta_vol & "||SetVar;vol_from_speed_full;" & $vol_from_speed[$speed_current])
			EndIf
		EndIf
		$speed_prev = $speed_current
		If Number($rr.getinfo("=$Is_new_vol_from_speed$")) = 1 Then
			_initvolarray()
			$rr.execute("SetVar;Is_new_vol_from_speed;0")
		EndIf
		Sleep(300)
	WEnd
EndFunc

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

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

    ; Закрываем iCarDS
    WinClose("iCar DS")

    ; Закрываем программу по коннекту интернета
    ProcessClose("SP Dialer.exe")

    ; Закрываем GpsGate
    WinClose("Franson GpsGate")

    ; Закрываем Блюстак
    ShellExecute("C:\Program Files (x86)\BlueStacks\HD-Quit.exe")

    If (ProcessWaitClose("iCarDS.exe", 3) == 0) Then
        ProcessClose("iCarDS.exe")
    EndIf
	
    If (ProcessWaitClose("SP Dialer.exe", 3) == 0) Then
        ProcessClose("SP Dialer.exe")
    EndIf

    If (ProcessWaitClose("HD-Frontend.exe", 3) == 0) Then
        ProcessClose("HD-Frontend.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")

    ; Запускаем Bluestacks вместе с лаунчером MyLauncher
    $Bluestacks_path = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Bluestacks", "InstallDir")
    ShellExecute($Bluestacks_path & "HD-RunApp.exe", "-p ru.znalexey.mylauncher -a ru.znalexey.mylauncher.LauncherActivity")

    ; Запускаем 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 вне форума   Ответить с цитированием