PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   iCarDS (http://pccar.ru/forumdisplay.php?f=121)
-   -   iCarDS + Сон, Гибридный сон и Гибернация (http://pccar.ru/showthread.php?t=23331)

seriousstas 02.12.2015 00:49

Lexx09
Хм ,
подправленный вариант тоже не действует на кнопку (как будто и нет скрипта...)
Кнопка с такими параметрами :
Цитата:

>>>> Window <<<<
Title:
Class: TOverlayForm
Position: 0, 0
Size: 77, 73
Style: 0x96000000
ExStyle: 0x08090008
Handle: 0x0001092A

>>>> Control <<<<
Class: TSkin
Instance: 1
ClassnameNN: TSkin1
Name:
Advanced (Class): [CLASS:TSkin; INSTANCE:1]
ID: 67884
Text:
Position: 0, 0
Size: 77, 73
ControlClick Coords: 52, 50
Style: 0x54000000
ExStyle: 0x00000000
Handle: 0x0001092C

>>>> Mouse <<<<
Position: 52, 50
Cursor ID: 0
Color: 0x7B6B5E

Lexx09 02.12.2015 11:22

У тебя высота кнопки не 68, а 73. Попробуй так:
Код:

While(True)
        $winList = WinList("[CLASS:TOverlayForm; W:77; H:73]")
        If ($winList[0][0] = 1) Then
                $hwnd = $winList[1][1]
                WinActivate("iCar DS")
                WinMove($hwnd, "", 200, 0)
                WinSetTrans($hWnd, "", 50)
        EndIf
        Sleep(100)
WEnd


seriousstas 03.12.2015 00:46

Прогресс , спасибо!
Что-то не работало на дефолтном скине (кнопка моргала , но не исчезала)-
поставил этот
http://pccar.ru/showthread.php?t=23602
и сразу потухла, а что-б не моргала в фоне и не перемещалась ,
убрал
Код:

                WinActivate("iCar DS")
                WinMove($hwnd, "", 200, 0)

Теперь пр старте - сразу добавляется прозрачность.
Цитата:

т.к. она иногда убегает в левый верхний угол
для Фубара годится :)

seriousstas 03.12.2015 00:59

Цитата:

Сообщение от Krysanov (Сообщение 345195)
Апну вопрос. Очень часто такое происходит..:angry: Причем и после обычного выключения (но не уверен на 100 процентов, тк пользуюсь сейчас смешанным режимом.. На работе, в гараже использую ПОИ, комп выключается совсем, завершая работу.. Если двигаюсь на авто, то использую гибридный режим..)
Никто не сталкивался?

Ты используешь полное выключение , тк есть проблемы ?
Мне хватает гибридного , сейчас настроил на идеальную работу этот
процесс . Перезапуск Икара (и др) все-таки оставил и все-таки отдельной прогой . Если правильно отстроить цепочку (открыть-закрыть) и использовать только
WinClose(" программа.exe") на входе (без ProcessClose)
проблем не должно быть .
Для старта при обычной загрузке использую планировщик .
Примерный вид моего скрипта :
Код:

#NoTrayIcon
#RequireAdmin
#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
; Это команда на сон
Global $PBT_APMSUSPEND = 0x0004
Global $PBT_APMRESUMESUSPEND = 0x0007

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

 
While 1
        $winList = WinList("[CLASS:TOverlayForm; W:77; H:73]")
        If ($winList[0][0] = 1) Then
                $hwnd = $winList[1][1]
                WinSetTrans($hWnd, "", 50)
        EndIf
        Sleep(10000)
WEnd


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

; Вход в спящий режим
Func Suspend()
WinClose("iCar DS")
WinClose("Vkey_ARDUINO")
WinClose("CityGuide")
WinClose("foobar2000")


EndFunc

; Выход из спящего режима
Func ResumeSuspend()
    ; Закрываем BlueSoleilCS
    Run('taskkill /f /im BlueSoleilCS.exe',"", @SW_HIDE)
 
    If (ProcessWaitClose("iCarDS.exe", 3) == 0) Then
        WinClose("iCar DS")
  EndIf
  If (ProcessWaitClose("Vkey_ARDUINO.exe", 3) == 0) Then
        ProcessClose("Vkey_ARDUINO.exe")
  EndIf
    If (ProcessWaitClose("foobar2000.exe", 3) == 0) Then
        WinClose("foobar2000")
  EndIf
Sleep(500)
    ShellExecute("C:\Users\carPC\Documents\iCarDS\skins\Chameleon\Scripts\Vkey_СARDUINO.exe")
Sleep(1000)
    ; Запускаем iCarDS
    ShellExecute("C:\Program Files (x86)\TipTop software\iCar DS\iCarDS.exe")

EndFunc

На выходе из сна - обычная проверка , если вдруг чего не успело закрыться + запуск...
Ещё возможное решение Твоего вопроса :
http://pccar.ru/showpost.php?p=345011&postcount=24

Krysanov 03.12.2015 05:14

Спасибо за развёрнутый ответ.

Lexx09 03.12.2015 10:54

Цитата:

Сообщение от seriousstas (Сообщение 345334)
Прогресс , спасибо!
Что-то не работало на дефолтном скине (кнопка моргала , но не исчезала)

Моргает потому, что iCarDS задает свою прозрачность (вернее, ее отсутствие), а скрипт - свою. Странно, что iCarDS не делает кнопку прозрачной...:dntknw: Может, сам что-то накрутил в скине?

seriousstas 03.12.2015 16:55

Цитата:

Может, сам что-то накрутил в скине?
В сам скин не лазил , да особо не экспериментировал - заработало с этим самодельным Classic - так и пользуюсь )
PS : поклацал сегодня - всё ок на любом скине , не знаю , что вчера было ,
а по-поводу
Цитата:

Странно, что iCarDS не делает кнопку прозрачной
это только с Фубаром так - причём с любым .

Добавил в основной скрипт вместо цикла :
выделил выше красным - полёт отличный :)
Единственное , о чём осталось подумать , как избавится от моргания после нажатия на кнопку(после закрытия панели) ,
мелочь , но не приятно ...

Lexx09 08.12.2015 00:37

Цитата:

Сообщение от mendisabal (Сообщение 330493)
короче блюстак вроде и спит ,но сабака не так ,после каждого просыпания гпс брайд по новой конектиться к гпс гейту ,о чем последний и свидетельствует кол-вом подключений ,в итоге после 6 таких подключений гпс гейт загораеться желтеньким ,типо хватит меня тормошить ,заепали вы вас много а я один) ну и собственно чистая перезагрузка всего блюстака ,новый конект - все в норме .

Что-то я засомневался в том, что GPSBridge после сна подключается по новой к GpsGate, и она после 6 снов/подключений отказывается работать. Желтеет GpsGate из-за того, что с приемника идут невалидные координаты. Скорее всего, просто совпадение.

Но решил проверить на домашнем компе. На нем установлены: iCarDS, Bluestacks, Яндекс.Навигатор, GPSBridge, GpsGate и u-center. В качестве GPS-приемника - VK-172 с батарейкой, частота 10Гц, лежит возле окна. Не менее 6 раз входил в гибернацию с отключением питания системника. Также ждал, когда перестанет мигать светодиод на приемнике. Каждый раз при возобновлении все нормально работало - и координаты в iCarDS, и Яндекс.Навигатор. GpsGate ни разу не пожелтела. Пожелтела только тогда, когда я приемник от окна убрал подальше и накрыл разводным ключом. После обратного поднесения к окну GpsGate позеленела, координаты в iCarDS появились, Яндекс.Навигатор заработал. GpsGate пишет "1 client connected".

Посему думаю, что из Autoit-скриптов в этой теме нужно убрать завершение iCarDS, GpsGate, Bluestacks перед входом в сон, и их запуск после возобновления.

Поправил свой рабочий скрипт. В итоге в нем осталось только включение/выключение USB-реле, управляющего сигналом Remote усилителя, и слежение за кнопкой iCarDS, наложенной на встроенное приложение. Поезжу, потестирую...

PS: Мне кажется, с батарейкой вместо ионистора лучше стал прием. :dntknw: Убрал приемник от окна в глубь квартиры - ловит. Накрыл дуршлагом - ловит. Положил сверху на приемник разводной ключ - сигнал пропал, хотя изредка все-же пробегали зеленые спутники (в u-center). А раньше, когда только купил, что-то не хотел ловить спутники в квартире. Хотя, может, это спутники мощные налетели...

seriousstas 08.12.2015 06:42

Lexx09
Нет Блюстака (пока нет надобности) , но мысли такие :
Цитата:

Но решил проверить на домашнем компе
Парочка девайсов (BT и Радио Г а Г а) без проблем работают на домашнем
и криво в машине . Тебе нужно учесть различия в стабильности питания ,
как хабов, так и встроенных портов - дома и в Авто .
Перезапускать Икар можно и даже нужно , тк в итоге эта сложная "махина" работает
всё-таки стабильнее . Есть и разные мелкие преимущества , например бегущая
строка сикбара Фубара пытается "догнать" время после восстановления , после перезапуска - норм .
Но кроме Икара нужно подумать последовательность закрытия-открытия и ,
как и писал ранее - стараться не использовать ProcessClose. Скриптик , что выше -
ещё ни разу не подкачал(можно прикинуть его работу сейчас здесь (на 5-й мин) http://pccar.ru/showpost.php?p=345707&postcount=581) . Сложнее всего при гибридом сне загрузка после Гибернации ,
что без проблем решается проверкой( If (ProcessWaitClose) при выходе из сна ...
В этом случае бывает та самая 1-3 секундная задержка . Те запуск вместо 10
получается на пару секунд дольше
Цитата:

VK-172 с батарейкой
- пошёл заказывать)

seriousstas 10.12.2015 02:36

Lexx09
Есть загадка , как отдельный скрипт для Сна работает ,
даже при значении
While 1
Sleep(99999999)
WEnd
?
Тесть выходит - цикла вообще не нужно , а достаточно аналога
#Persistent , как в AHK , просто в Autoit такого нет .

Это позволяет поставить секунд 10-ть для иконки и избежать моргания :
Код:

While 1
        $winList = WinList("[CLASS:TOverlayForm; W:77; H:73]")
        If ($winList[0][0] = 1) Then
                $hwnd = $winList[1][1]
                WinSetTrans($hWnd, "", 50)
        EndIf
        Sleep(10000)
WEnd

Проверил - поправил.


Часовой пояс GMT +4, время: 21:16.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot