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 21.07.2016 04:31

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

Расшифровка блоков SUSPEND.exe :

Пауза при обычном запуске (без сна) :
Sleep(1500) - Задержка 1.5 секунды

; Перезапуск служб BlueSoleil при обычном старте
Рестарт служб BT BlueSoleil для стабильности при выходе из Сна и Гибернации

;Циклический перезапуск Wi-Fi:
если нет И-нета - рестарт - позволяет быстро сединится, например с мобильным 3G . В паре с Tasker - соединяется мгновенно .

;Циклическая проверка прозрачности иконки полноэкранного шаблона FSReal
подробнее :
http://pccar.ru/showpost.php?p=344768&postcount=216

; Вход в спящий режим (Команды)
Закрываем Икар :
WinClose("iCar DS")
и всё что нужно ещё ...

; Выход из спящего режима(Команды)
If (ProcessWaitClose... - Здесь перепроверяем наличие процессов(окон) - если есть - закрываем
WinClose - закрыть программу
ProcessClose- закрыть принудительно программу (процесс)
Запуск Икара :
ShellExecute("C:\Program Files (x86)\TipTop software\iCar DS\iCarDS.exe")
и все, что нужно ещё ..

Паузы Sleep -можно изменить под себя

Если что-то не нужно , то просто удаляем блоками :
Код:

    ; Перезапуск BlueSoleilCS
    Run('taskkill /f /im BtTray.exe',"", @SW_HIDE)
    Run('taskkill /f /im BlueSoleilCS.exe',"", @SW_HIDE)
    Run('taskkill /f /im BsHelpCS.exe',"", @SW_HIDE)
    Run('taskkill /f /im BsMobileCS.exe',"", @SW_HIDE)
Sleep(200)

или
Код:

; Перезапуск Wi-Fi (с проверкой)
$var = Ping("www.google.com",250)
If @error Then
_RunDOS('netsh interface set interface "Беспроводная сеть" DISABLE') ; выкл "Local Area Connection"
Sleep(2000)
_RunDOS('netsh interface set interface "Беспроводная сеть" ENABLE') ; вкл "Local Area Connection"

или (здесь два действия внутри одного цикла)
Код:

;Начало цикла
While 1
;Циклический перезапуск Wi-Fi:
$connect = _GetNetworkConnect()
If Not $connect Then
_RunDOS('netsh interface set interface "Беспроводная сеть" DISABLE') ; выкл "Local Area Connection"
Sleep(5000)
_RunDOS('netsh interface set interface "Беспроводная сеть" ENABLE') ; вкл "Local Area Connection"
EndIf
;Циклическая проверка прозрачности иконки полноэкранного шаблона FSReal
$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
;завершение цикла

;Циклическая проверка прозрачности Кнопки полноэкранного шаблона FSReal :
Узнать размеры(W:77; H:73) кнопки можно программой AutoIt3\Au3Info_x64.exe
перетянув прицел на неё .

shumaz 27.07.2016 04:15

Цитата:

Сообщение от seriousstas (Сообщение 334484)
(сам Икар при этом стартует через встроенную автозагрузку из настроек Конфигуратора)

о каком конфигураторе речь не пойму?(((

P.S. Стас, почисть плиз личку. не даёт тебе ЛС отправить (

seriousstas 27.07.2016 05:30

Цитата:

Сообщение от shumaz (Сообщение 365735)
о каком конфигураторе речь не пойму?(((

P.S. Стас, почисть плиз личку. не даёт тебе ЛС отправить (

родном - iCarDSConfig

почистил :)

Евген_21 19.08.2016 18:31

seriousstas, Lexx09 привет. Не по теме ,нужна помощь.
При запуске Икара мельтешит окно Плагина связи с авто
OBDmain. Хочу сделать его прозрачным на определенное
время. Основа скрипта http://pccar.ru/showpost.php?p=344768&postcount=216
А это что я пытался сделать.
Код:

#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
#include
        $winList = WinList("[CLASS:TFormMain]")
        If ($winList[0][0] = 1) Then
                $hwnd = $winList[1][1]
                WinSetTrans($hWnd, "", 0)
        EndIf
                Sleep(9000)
        $winList = WinList("[CLASS:TFormMain]")
        If ($winList[0][0] = 1) Then
                $hwnd = $winList[1][1]
                WinSetTrans($hWnd, "", 255)
        EndIf

Если скрип запустить без Икара все работает.
Запускаю скрипт и Икар вместе, окно OBDmain остается неизменным.

Lexx09 19.08.2016 19:42

Навскидку...
Возможно, окно плагина OBDMain имеет такой-же класс, как и окно iCarDS - "TFormMain". В скрипте идет обращение к первому найденному окну с таким классом. Если iCarDS запущен, то его окно первое, а OBDMain - второе. Надо отслеживать кол-во найденных окон, если их два - то обращаться ко второму.
Как-то так:
PHP код:

#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 <WindowsConstants.au3>
#include <Process.au3>

$winList WinList("[CLASS:TFormMain]")
If (
$winList[0][0] = 2Then
    $hwnd 
$winList[2][1]
    
WinSetTrans($hwnd""0)
EndIf
Sleep(9000)
$winList WinList("[CLASS:TFormMain]")
If (
$winList[0][0] = 2Then
    $hwnd 
$winList[2][1]
    
WinSetTrans($hwnd""255)
EndIf 


Евген_21 19.08.2016 20:25

Цитата:

Сообщение от Lexx09 (Сообщение 367434)
Навскидку...
Возможно, окно плагина OBDMain имеет такой-же класс, как и окно iCarDS - "TFormMain". В скрипте идет обращение к первому найденному окну с таким классом. Если iCarDS запущен, то его окно первое, а OBDMain - второе. Надо отслеживать кол-во найденных окон, если их два - то обращаться ко второму.
Как-то так:
PHP код:

#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 <WindowsConstants.au3>
#include <Process.au3>

$winList WinList("[CLASS:TFormMain]")
If (
$winList[0][0] = 2Then
    $hwnd 
$winList[2][1]
    
WinSetTrans($hwnd""0)
EndIf
Sleep(9000)
$winList WinList("[CLASS:TFormMain]")
If (
$winList[0][0] = 2Then
    $hwnd 
$winList[2][1]
    
WinSetTrans($hwnd""255)
EndIf 


С таким кодом получилось, но на секунду все равно окно появляется, но уже не 3.

Код HTML:

#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 <WindowsConstants.au3>
#include <Process.au3>

; Ожидание 15 секунд до появление окна OBDmain
$hWnd = WinWait("[CLASS:TFormMain]", "", 15)

; Устанавливает прозрачность окна OBDmain - 0.
WinSetTrans($hWnd, "", 0)

; Время прозрачность окна.
Sleep(15000)

; Устанавливает прозрачность окна OBDmain - 255.
WinSetTrans($hWnd, "", 255)

Как сделать чтоб сразу сделать окно прозрачным (чтоб даже доли секунды не было)

Lexx09 19.08.2016 20:32

Цитата:

Сообщение от Евген_21 (Сообщение 367440)
Как сделать чтоб сразу сделать окно прозрачным (чтоб даже доли секунды не было)

Попробовать скриптом запускать плагин с невидимым окном:
PHP код:

Run "program" [, "workingdir" [, show_flag [, opt_flag]]] )

show_flag [optionalThe "show" flag of the executed program:
    @
SW_HIDE Hidden window (or Default keyword

Потом этим же скриптом делать видимым.

Евген_21 29.08.2016 19:06

Может кому то и пригодиться.
http://ab57.ru/cmdlist/powercfg.html
А, это всем кто пользуется сном......Чтобы просмотреть список всех устройств, которые
могут пробудить компьютер
Пуск-Поиск-cmd. Запуск от имени Администратор.
Команда:Powercfg -devicequery wake_armed

И все что может пробудить ком, будет видно.
Стас, настроил комп на сон, через час гибернация. Пока все нормально работает без скриптов.
Но как ты и писал где то выше, при просыпании бежит строка трека ,а потом картинки альбома.
Вопрос... можно ли этот процесс или скрипт заморозить., при уходе в сон.

seriousstas 06.09.2016 13:36

Евген_21
Привет !
Почему просто не перезапустить Фубар ?

Krysanov 06.09.2016 18:26

было бы неплохо кодерам глянуть в эту сторону и исправить.. чем придумывать костыли, имхо


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

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