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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   iCarDS (http://pccar.ru/forumdisplay.php?f=121)
-   -   Инсталлятор iCarDS v1.7.0.60 (http://pccar.ru/showthread.php?t=23946)

shumaz 16.01.2017 01:57

Цитата:

Сообщение от Lexx09 (Сообщение 379697)
Код:

; Если BlueStacks запущен, то...
If (ProcessExists("HD-Frontend.exe") And ($bsNoBorder = 1)) Then
        ; Убираем рамку вокруг окна BlueStacks
        $bsHandle = WinGetHandle("BlueStacks App Player")
        $bsStyle = _WinAPI_GetWindowLong($bsHandle, $GWL_STYLE)
        $bsStyle = BitAND($bsStyle, BitNOT($WS_BORDER), BitNOT($WS_CAPTION), BitNOT($WS_THICKFRAME))
        _WinAPI_SetWindowLong($bsHandle, $GWL_STYLE, $bsStyle)
EndIf


Цитата:

Сообщение от seriousstas (Сообщение 379712)
shumaz
проверь (из эмуляторов видел-щупал только Мему)

если не нужен рестарт адаптера при старте Икара - убери вначале скрипта (после переменных) :
Код:

_disable_()
Sleep(1000)
_enable_()

вначале скрипта

Спасибо, завтра тестану в машине.
P.S. убрал 3 строки упомянутые выше... я так понял без них тоже будет шустро цеплятся к wifi, просто без рестарта адаптера... я раньше не ресстартил, вроде работало норм

dmn37 16.01.2017 16:55

При отключении UAC (EnableLUA =0) в Win10 не запускаются метро-приложения(

shumaz 16.01.2017 16:56

Не работает что то... + ошибка
http://i9.pixs.ru/thumbs/1/9/3/IMAG0...0_24794193.jpg

dmn37 16.01.2017 19:22

Цитата:

Сообщение от dmn37 (Сообщение 379773)
При отключении UAC (EnableLUA =0) в Win10 не запускаются метро-приложения(

Разобрался: UAC включить (EnableLUA =1), iCarDS в качестве оболочки запускать с правами админа (запись в реестр - iCarDS_Admin+explorer_REG.exe)

Еще вопрос: Для связи с автомобилем использую плагин iCarVOBD&obdmain. Obdmain стартует сразу после запуска iCarDS, потом у меня грузится explorer, следом bluesoleil. Нужно чтобы obdmain грузился после bluesoleil, и видел порт obd адаптера.

Как отложить запуск obdmain секунд на десять, например?

Евген_21 16.01.2017 19:27

Вложений: 1
Цитата:

Сообщение от dmn37 (Сообщение 379785)
Как отложить запуск obdmain секунд на десять, например?

Настройки=расширенные настройки=время задержки начала работы плагина....

dmn37 16.01.2017 19:42

Цитата:

Сообщение от Евген_21 (Сообщение 379786)
Настройки=расширенные настройки=время задержки начала работы плагина....

Не помогло, поставил значение 10000, все равно obdmain стартует сразу

seriousstas 16.01.2017 20:34

dmn37
Цитата:

Разобрался: UAC включить (EnableLUA =1), iCarDS в качестве оболочки запускать с правами админа (запись в реестр - iCarDS_Admin+explorer_REG.exe)
Отлично! - рад , что пригодилось..
Цитата:

Как отложить запуск obdmain секунд на десять, например?

Что-б "побороть" СОН - добавить задержку и понять принцип работы - пошло много времени
- больше не хочу..! :)
Могу только подсказать ,куда копать :
1 Изучи принцип работы таймеров :
http://pccar.ru/showpost.php?p=183089&postcount=7
2. Открывай ExecTBL.ini , ищи запуск плагина - добавляй задержку .

seriousstas 16.01.2017 20:55

shumaz
не находит (какое-то) значение..
Lexx09 прикрепи плиз весь iCarMainScript или подскажи чего не хватает ..

Lexx09 16.01.2017 21:55

Цитата:

Сообщение от shumaz (Сообщение 379774)
Не работает что то... + ошибка
http://i9.pixs.ru/thumbs/1/9/3/IMAG0...0_24794193.jpg

Выложи свой iCarMainScript.exe.

shumaz 17.01.2017 00:49

Вложений: 1
Цитата:

Сообщение от Lexx09 (Сообщение 379798)
Выложи свой iCarMainScript.exe.

код
так же архивом залил.
Код:

#NoTrayIcon
#RequireAdmin
#pragma compile(Icon, "C:\Program Files (x86)\AutoIt3\Icons\MyAutoIt3_Yellow.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
#include
#include
#include
Global $iPID, $sOut, $sInterface, $aResult
Local $asConnection, $asAvailableNets, $sCurrentProfile
_Wlan_StartSession()
$sMessages = 0
$cTimer = 5000
$myAlpha = 50
$sInterface = IniRead(@ScriptDir & '\wifi.ini', 'wifi', 'interface', 0)
Local $omyerror
$omyerror = ObjEvent("AutoIt.Error", "MyErrFunc")
Dim $vol_from_speed[201]
Global $rr = ObjCreate("RideRunner.sdk")
_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$"))
        _Wlan_StartSession()
_Wlan_StartNotificationModule()

If _Wlan_QueryInterface() = "Connected" Then
        Local $asConnection = _Wlan_QueryInterface($WLAN_INTF_OPCODE_CURRENT_CONNECTION)
        $sCurrentProfile = $asConnection[2]
Else
        _enable_()
        Sleep(3000)
        Local $asNetworks = _Wlan_GetNetworks(True) ;True will perform a scan before returning a list.
        ;_ArrayDisplay($asNetworks)
        For $i = 0 To UBound($asNetworks) - 1
                If StringInStr($asNetworks[$i][9], "P") Then ;If the entry has a profile.
                        $sCurrentProfile = $asNetworks[$i][0]
                        ExitLoop
                EndIf
        Next
        _check_interface()
EndIf


        _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)
                If Not (Ping("www.google.com", 250) Or Ping("www.yandex.ru", 250)) Then ;пингуем гугл и если нет подключаемся

                        If Not (_Wlan_QueryInterface() = "Connected") Then ;проверяем подключение активного профиля
                                If _Wlan_Connect($sCurrentProfile, False) Then ;True will wait for the interface to connect. Подключаемся к сети.
                                        _check_interface()
                                ElseIf Not (_Wlan_QueryInterface() = "Connected") Then ;если все еще нет сети пытаемсся включить адаптер
                                        _enable_() ;включаем адаптер
                                EndIf
                        EndIf
                EndIf


        Sleep($cTimer) ;цикл в 10 сек
                $overlay_handle = WinGetHandle("[CLASS:TOverlayForm]")
        If ($overlay_handle And WinExists($overlay_handle)) Then
                Local $iTransColor, $iAlpha
                $iInfo = _WinAPI_GetLayeredWindowAttributes($overlay_handle, $iTransColor, $iAlpha)
                If ($iAlpha <= 100) Then
                Sleep(3000)
                        _WinAPI_SetLayeredWindowAttributes($overlay_handle, $iTransColor, $myAlpha)
                EndIf
        EndIf
        Sleep(300)
If (ProcessExists("HD-Frontend.exe") And ($bsNoBorder = 1)) Then
        ; Убираем рамку вокруг окна BlueStacks
        $bsHandle = WinGetHandle("BlueStacks App Player")
        $bsStyle = _WinAPI_GetWindowLong($bsHandle, $GWL_STYLE)
        $bsStyle = BitAND($bsStyle, BitNOT($WS_BORDER), BitNOT($WS_CAPTION), BitNOT($WS_THICKFRAME))
        _WinAPI_SetWindowLong($bsHandle, $GWL_STYLE, $bsStyle)
EndIf
        WEnd
EndFunc
Func _check_interface()
        ;If Not $sInterface Then
        $iPID = Run('netsh.exe wlan show interfaces', '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
        $sOut = ''
        ProcessWaitClose($iPID)
        Do
                $sOut &= StdoutRead($iPID)
        Until @error
        $aResult = StringRegExp(_Encoding_866To1251($sOut), '(Имя|Name) *: *(.+) *', 1)
        ;_ArrayDisplay($aResult)
        If UBound($aResult) >= 2 Then
                $sInterface = $aResult[1]
        EndIf
        ;MsgBox(0, "Check Interface result:", $sInterface)
        $sInterface_check = IniRead(@ScriptDir & '\wifi.ini', 'wifi', 'interface', 0)
        If Not ($sInterface == $sInterface_check) Then
                IniWrite(@ScriptDir & '\wifi.ini', 'wifi', 'interface', $sInterface)
        EndIf
        ;EndIf
EndFunc  ;==>_check_interface
Func _enable_()

        RunWait('netsh.exe interface set interface "' & $sInterface & '" enable', '', @SW_HIDE) ; включить
        Sleep(200)
        ;$sping_ = Ping("www.google.com", 250)
        ;MsgBox(0, "Ping:", $sping_)
EndFunc  ;==>_enable_

Func _disable_()
        RunWait('netsh.exe interface set interface "' & $sInterface & '" disable', '', @SW_HIDE) ; выключить
        Sleep(200)
EndFunc  ;==>_disable_


Krysanov 17.01.2017 09:26

Установил икар как оболочку.. и чего боялся, то и произошло.. ошибка скин.ини и чёрный экран.. как теперь эксплорер вызвать? alt+f4, esc, alt +tab, ничего не помогает...

sirota 17.01.2017 10:08

Цитата:

Сообщение от Krysanov (Сообщение 379817)
Установил икар как оболочку.. и чего боялся, то и произошло.. ошибка скин.ини и чёрный экран.. как теперь эксплорер вызвать? alt+f4, esc, alt +tab, ничего не помогает...

F8 или еще как там у тебя не знаю вызывается защищенный режим.

Krysanov 17.01.2017 10:22

Цитата:

Сообщение от sirota (Сообщение 379823)
F8 или еще как там у тебя не знаю вызывается защищенный режим.

Какой такой защищённый режим?

Lexx09 17.01.2017 10:30

Цитата:

Сообщение от Krysanov (Сообщение 379817)
Установил икар как оболочку.. и чего боялся, то и произошло.. ошибка скин.ини и чёрный экран.. как теперь эксплорер вызвать? alt+f4, esc, alt +tab, ничего не помогает...

Alt+Ctrl+Del -> Диспетчер задач -> Файл -> Новая задача -> explorer -> Enter.

sirota 17.01.2017 10:49

Цитата:

Сообщение от Krysanov (Сообщение 379824)
Какой такой защищённый режим?

Безопасный :yes2:
Или как Lexx говорит.

Krysanov 17.01.2017 11:08

Цитата:

Сообщение от Lexx09 (Сообщение 379825)
Alt+Ctrl+Del -> Диспетчер задач -> Файл -> Новая задача -> explorer -> Enter.

Вышел, спасибо, затупил. Рабочего стола нет, только папка. Как убить процесс икара.. ну, чтобы он закрылся?

vladj 17.01.2017 12:50

Цитата:

Сообщение от Krysanov (Сообщение 379828)
Как убить процесс икара.. ну, чтобы он закрылся?

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

Krysanov 17.01.2017 13:32

Проблема в том что я не вижу процесс icards. Exe

Krysanov 17.01.2017 13:39

Фото не получается, вот видео диспетчера задач

Krysanov 17.01.2017 14:18

Снес винду...:(

Lexx09 17.01.2017 14:23

Радикально, однако. Надо было через диспетчер запустить explorer, explorer'ом запустить reg-файл для восстановления параметра shell реестра, перезагрузится.

PS: Ну или запустить regedit и поправить реестр ручками.

seriousstas 17.01.2017 16:12

Цитата:

Сообщение от Lexx09 (Сообщение 379850)
Радикально, однако. Надо было через диспетчер запустить explorer, explorer'ом запустить reg-файл для восстановления параметра shell реестра, перезагрузится.

PS: Ну или запустить regedit и поправить реестр ручками.

он либо ресетнул после установки , либо отказался от перезагрузки,
в таких случаях reg-файл не поможет тк не отключен UAC и это 8-ка) .
(обсуждали-ведь уже...)
Добавь в инсталятор аналог
explorer_REG.exe , (что-б ставился либо на раб. стол либо в TipTop software ) :
http://pccar.ru/showpost.php?p=376595&postcount=516
Запуск будет с повышением прав и это поможет не только при аварийном восстановлении,
а и просто для (быстрого) возврата стандандартной оболочки .
Сделай , чтоб через GUI появлялось окно (Вернуть станданртную оболочку "Да" - "Нет")

Также полезным будет опционально запуск Икара от админа ,
для работы Метро и тд.., что-б не отлючать UAC (иначе Метро не заработает , тут Яндекс Карты в тренде :)).
Готовое решение исходник так-же есть в архиве .

dmn37 17.01.2017 16:57

Цитата:

Сообщение от seriousstas (Сообщение 379789)
dmn37
Могу только подсказать ,куда копать :
1 Изучи принцип работы таймеров :
http://pccar.ru/showpost.php?p=183089&postcount=7
2. Открывай ExecTBL.ini , ищи запуск плагина - добавляй задержку .

Спасибо за подсказку:smile2: Вроде получилось. Еще бы сделать чтобы obdmain при запуске не мелькал поверх Икара.

Lexx09 17.01.2017 17:52

Цитата:

Сообщение от dmn37 (Сообщение 379869)
Еще бы сделать чтобы obdmain при запуске не мелькал поверх Икара.

Попробуй так. И чуть выше там почитай. Но Евген_21, кажется, не отписался, помогло или нет...

PS: Этот вопрос и некоторые твои другие надо задавать не в этой теме.

Евген_21 17.01.2017 18:07

Цитата:

Сообщение от dmn37 (Сообщение 379869)
Спасибо за подсказку:smile2: Вроде получилось. Еще бы сделать чтобы obdmain при запуске не мелькал поверх Икара.

Показывай что где менял.

Lexx09
Цитата:

Попробуй так. И чуть выше там почитай. Но Евген_21, кажется, не отписался, помогло или нет...
Не получилось:no2:

Lexx09 17.01.2017 18:08

Цитата:

Сообщение от shumaz (Сообщение 379774)
Не работает что то... + ошибка
http://i9.pixs.ru/thumbs/1/9/3/IMAG0...0_24794193.jpg

Забыл, нужно еще это добавить перед основным циклом:
Код:

$bsnoborder = $rr.getinfo("=$BS_NoBorder$")

dmn37 17.01.2017 18:29

Цитата:

Сообщение от Евген_21 (Сообщение 379882)
Показывай что где менял.

Вот

seriousstas 17.01.2017 18:37

Цитата:

Сообщение от dmn37 (Сообщение 379869)
Спасибо за подсказку:smile2: Вроде получилось.

Да не за что ! - я эти пояснения от Берсеньева вообще случайно - через Гугл нашел(хотя всегда рядом были) :)

shumaz 17.01.2017 19:24

Цитата:

Сообщение от Lexx09 (Сообщение 379883)
Забыл, нужно еще это добавить перед основным циклом:
Код:

$bsnoborder = $rr.getinfo("=$BS_NoBorder$")

можешь полный код дать? что бы наверняка)

Lexx09 17.01.2017 21:39

В этот скрипт вставь перед строкой 82.

shumaz 18.01.2017 15:09

Цитата:

Сообщение от Lexx09 (Сообщение 379938)
В этот скрипт вставь перед строкой 82.

Сделал... Ошибки теперь нету, но рамка вокруг окна BlueStacks всё ровно есть:unsure2:

Lexx09 18.01.2017 18:02

Это сделал?
Цитата:

Сообщение от Lexx09 (Сообщение 353102)
Если в конфигураторе в Global Vars прописать BS_NoBorder=1, то циклически будет убираться рамка вокруг окна BlueStacks.


Lexx09 18.01.2017 23:00

Цитата:

Сообщение от seriousstas (Сообщение 376595)

Замечания по скрипту RUN_iCarDS_Admin.au3:
  1. Переменная $ProgramFileDir не используется, можно ее не определять.
  2. В строке 23 используется переменная $rDir, которая ранее нигде не определена.
  3. Для использования константы $MB_ICONERROR нужно подключить файл MsgBoxConstants.au3.
  4. AutoItConstants.au3 подключать не нужно.
  5. Этот код:
    Код:

    $hTrayWnd = WinGetHandle('[Class:Shell_TrayWnd]')
    WinSetState($hTrayWnd,'', @SW_HIDE)

    можно сократить до такого:
    Код:

    WinSetState('[Class:Shell_TrayWnd]','', @SW_HIDE)
  6. А почему-бы iCarDS не запускать сразу так? Без перезапуска скрипта...
    Код:

    ShellExecute(@ProgramFilesDir & "\TipTop software\iCar DS\iCarDS.exe", "", "", "runas")

Кстати, если все скрипты находятся в одной папке с iCarDS.exe, то запускать его можно так:
Код:

Run(@ScriptDir & "\iCarDS.exe")
или даже так:
Код:

Run("iCarDS.exe")

seriousstas 19.01.2017 06:45

Lexx09
если помнишь (из темы сна) я autoit c 0-ля пробую,
но даже для ctrlC ctrlV нужны знания - вот и учусь понемногу ..
Время нужно - больше ничего :)
Цитата:

Run(@ScriptDir & "\iCarDS.exe")
если откроешь мои древние Фубаровские сборки , то именно так и делал на AHK(для запуска скриптов),что-б добится полной портабельности - а тут не сообразил . Спасибо за разбор полётов! :)
"Приделай" сюда оптимизированный вариант с runas и дт - будет полезным многим думаю ..

sirota 19.01.2017 07:52

Цитата:

Сообщение от shumaz (Сообщение 379983)
Сделал... Ошибки теперь нету, но рамка вокруг окна BlueStacks всё ровно есть:unsure2:

Про какую рамку говоришь...покажи.

shumaz 19.01.2017 17:51

Цитата:

Сообщение от Lexx09 (Сообщение 380019)
Это сделал?

точно! теперь работает. Спасибо

Цитата:

Сообщение от sirota (Сообщение 380074)
Про какую рамку говоришь...покажи.

706 пост скрин ведь есть!
Рамка окна Блюстака

seriousstas 19.01.2017 18:15

Цитата:

Сообщение от shumaz (Сообщение 380115)
706 пост скрин ведь есть!

предложу неплохой хостинг :
http://piccy.info/

sirota 19.01.2017 22:02

Цитата:

Сообщение от shumaz (Сообщение 380115)


706 пост скрин ведь есть!
Рамка окна Блюстака

Черные полосы с лева и с право?

shumaz 20.01.2017 05:04

Цитата:

Сообщение от sirota (Сообщение 380166)
Черные полосы с лева и с право?

блин))))
рамка окна WINDOWS ))))) где написано "BlueStacks App Player" а справа фигурки разные))) "свернуть/развернуть/закрыть"
хз как тебе ещё объяснить... вроде доступно выражаюсь. обвёл красным:
http://i.piccy.info/i9/58222916f07cb...794193_240.jpghttp://i.piccy.info/a3/2017-01-20-01...40x136-r/i.gif

sirota 20.01.2017 07:59

Если бы сразу обвел красным, то было бы понятней....потому народ и молчит.
У меня также эти полоски проходят по самому краю видимой области монитора , плюс пластиковая рамка закрывающая монитор идет впритык к этим полоскам, так что дискомфорта не замечал.
Желтой полосы сверху нет....была такая проблема но Lexx ее вроде полечил.
А какую сборку BS ставил?
Может Lexx09 подскажет как убрать :dntknw:


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

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