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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   АвтоЗвук (http://pccar.ru/forumdisplay.php?f=16)
-   -   сборка/тема foobar 2000 для CarPС (http://pccar.ru/showthread.php?t=19671)

120705 14.01.2017 21:25

Цитата:

Сообщение от duzzy (Сообщение 379660)
seriousstas

Проблема с ...

скорее всего из за АНК...
Потому как на разных компах и системах он ведет себя абсолютно по разному.
Где то работает а где то нет.
Я поэтому и решил уйти на Автоит, теперь сложностей со скриптами в сборке нет.
+ в нем синтаксис человеческий.

Перекомпелить AHK в Автоит, мож. поможет. Или так нельзя?

seriousstas 15.01.2017 06:10

duzzy
Цитата:

Я поэтому и решил уйти на Автоит, теперь сложностей со скриптами в сборке нет.
Цитата:

Хочу проверить работу.
тоже хочу ..
На Автоит вообще не нашел прокрутки колеса в нужном окне , как на AHK , одной строчкой через ControlClick -
только отдельно и это не решает задачу .

duzzy 15.01.2017 16:07

seriousstas

Да похоже в Автоит с прокруткой колесом в окне печаль...

Можно по DllCall() и $WM_MOUSEWHEEL(через дельту) но в окне ВУметра не работает прокрутка, а в других программах крутит без проблем.
Любое окно F8(крутим вниз)
Выход Esc
Код:

#include
#include
#include

HotKeySet("{ESC}", "_Quit")
HotKeySet("{F8}", "_MouseWheelPlusTest")

Opt("WinTitleMatchMode", 2)

Global $f_Dir = False

While 1
    Sleep(100)
WEnd

Func _MouseWheelPlusTest()
    ;$f_Dir = Not $f_Dir
    ;If $f_Dir Then
        ;_MouseWheelPlus("Analog VU Meter", "up", 1)
  ; Else
        _MouseWheelPlus("", "down", 0)
    ;EndIf
EndFunc  ;==>_MouseWheelPlusTest

Func _MouseWheelPlus($Window, $direction, $clicks)
    $MouseCoord = MouseGetPos()
    $wdow = WinGetHandle('[CLASS:#32770]','')
        ControlFocus($wdow,'','')
        $X = $MouseCoord[0]
    $Y = $MouseCoord[1]
    If $direction = "up" Then
        $WheelDelta = 120
    Else
        $WheelDelta = -220
    EndIf
    For $i = 0 To $clicks
        $aRET = DllCall("user32.dll", "int", "SendMessage", _
                "hwnd", ControlGetHandle(WinGetHandle($Window),'',''), _
                "int", $WM_MOUSEWHEEL, _
                "long", _MakeLong(0, $WheelDelta), _
                "long", _MakeLong($X, $Y))
        ;MsgBox(0, @error, $aRET[0])
                ;MsgBox(0, '', $Window)
                ConsoleWrite($Window&'  '&$aRET[0] & @CRLF)
    Next
EndFunc  ;==>_MouseWheelPlus

Func _MakeLong($LoWord, $HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc  ;==>_MakeLong

Func _Quit()
    Exit
EndFunc

----------------------------------------------------------------------------------------

Можно сделать так, установить в авто комп AHK и компилить уже в авто
Код:

#NoTrayIcon
#SingleInstance force
ControlClick,{88D33FF9-8199-4332-B69C-6B99D67A24C9}2,,Analog VU Meter, WheelDown, 2
ExitApp

У меня меняется только --- Instance: 1 (отметил жирным красным что менять)
http://jpegshare.net/thumbs/45/a0/45...42a5748917.jpg

seriousstas 15.01.2017 17:59

duzzy
Да - тож пробовал по всякому ..
Цитата:

У меня меняется только --- Instance: 1
32-битка ?

120705
Евген_21

Проверте такой :

Код:

#include
#include
#include
If @OSArch = "X86" Then
    $CLASSNN = "{88D33FF9-8199-4332-B69C-6B99D67A24C9}1"
    Else
    $CLASSNN = "{88D33FF9-8199-4332-B69C-6B99D67A24C9}2"
    Endif

$iCount = -2 ; количество прокруток (минус - вниз, плюс - вверх)

$hCtrl = ControlGetHandle("[CLASS:{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}]", "", $CLASSNN)
_SendMessage($hCtrl, $WM_MOUSEWHEEL, _WinAPI_MakeLong(0, $iCount * 120))


seriousstas 15.01.2017 19:11

Цитата:

Автоит, теперь сложностей со скриптами в сборке нет.
+ в нем синтаксис человеческий.
Цитата:

Да похоже в Автоит с прокруткой колесом в окне печаль...
Тут начиная от замены самого сабя , контроля копий , до элементарных
задач - Автоит проигрывает вчистую .. пример :
http://autoit-script.ru/index.php?to...4476#msg134476
Цитата:

В ahk это выглядит самым примитивным образом....
У AHK - другие недостатки )

duzzy 15.01.2017 21:03

seriousstas

Цитата:

32-битка ?
Ты про ОС ?
ОС 64-ка где меняется, я еще с NEON намучился при использовании АНК, все скрипты с дом.компа не работали пока в машине не перекомпилишь.

Цитата:

Тут начиная от замены самого сабя , контроля копий , до элементарных
задач - Автоит проигрывает вчистую ..
Я бы так не сказал... скорее так... у всего есть свое предназначение :)

Замена самого себя... это как ???

Контроль копий --- ты про запуск одной копии скрипта ? если да то это элементарно...
Код:

If _Singleton(@ScriptName, 1) = 0 Then ;single process
        Exit
EndIf

Цитата:

Автоит проигрывает вчистую .. пример :
MouseDown ( "button" ) :smile2:

seriousstas 15.01.2017 22:58

duzzy
Цитата:

Замена самого себя... это как ???
так :
#SingleInstance force
и просто переключаешь - гениально - и не нужно ничего городить с условиями :
#SingleInstance ignore
#SingleInstance off

на автоитовский _Singleton читал много жалоб - придумывают другие варианты с временной переменной и тд ..
AHK :#Persistent - удерживать
вместо циклов - есть return ..
- Сильно упрощает жизь )
Цитата:

Можно по DllCall() и $WM_MOUSEWHEEL(через дельту)
совсем не простой метод ..
попробуй - работает-ли скрипт , что выше ?

Евген_21 16.01.2017 14:20

duzzy
Цитата:

Можно сделать так, установить в авто комп AHK и компилить уже в авто
Попробовал, твой вариант. Не вышло.
seriousstas
Цитата:

Проверте такой :
Спасибо, заработало без проблем.:yes2::smile1:

duzzy 16.01.2017 15:58

seriousstas

Цитата:

#SingleInstance force
Да это тоже самое что и If _Singleton(@ScriptName, 1)... просто в более красивой обертке.
С _Singleton у меня проблем не было вообще.
Циклы удобней в разы, а Return есть и в Автоит.

Цитата:

совсем не простой метод ..
попробуй - работает-ли скрипт , что выше ?
Это тоже самое что и в твоем скрипте...
_SendMessage --- это враппер(упращенный вариант функции) для DllCall - SendMessage. Это можно сделать с любой другой функцией.

Пример обертки:

_Моя_новая_функ(параметр, параметр, параметр)
DllCall(параметр, параметр, параметр)
конец функции

Вот пример простой обертки в обертке :)
Твой скрипт...
Код:

#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\AutoIt_Main_v10_48x48_RGB-A.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include
#include
#include

Func _MouseWheel($iCount) ; количество прокруток ((-2) минус - вниз, (2)плюс - вверх)
        If @OSArch = "X86" Then
                $CLASSNN = "1"
        Else
                $CLASSNN = "2"
        EndIf
        $hCtrl = ControlGetHandle("[CLASS:{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}]", "", "{88D33FF9-8199-4332-B69C-6B99D67A24C9}" & $CLASSNN)
        _SendMessage($hCtrl, $WM_MOUSEWHEEL, _WinAPI_MakeLong(0, $iCount * 120))
EndFunc  ;==>_MouseWheel


_MouseWheel(2);2 раза вверх

_MouseWheel(-2);2 раза вниз

Более обобщенный вариант для любых окон... :whistle:
Код:

#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\AutoIt_Main_v10_48x48_RGB-A.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include
#include
#include

$window_Class ="[CLASS:{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}]"
$control_Class ="{88D33FF9-8199-4332-B69C-6B99D67A24C9}2"

Func _MouseWheel($wClass, $cClass, $iCount) ;$wClass - класс окна, $cClass - что конролим, количество прокруток ((-2) минус - вниз, (2)плюс - вверх)
        $hCtrl = ControlGetHandle($wClass, "", $cClass)
        _SendMessage($hCtrl, $WM_MOUSEWHEEL, _WinAPI_MakeLong(0, $iCount * 120))
EndFunc  ;==>_MouseWheel


_MouseWheel($window_Class,$control_Class, 2);2 раза вверх

_MouseWheel($window_Class,$control_Class, -2);2 раза вниз

Евген_21
Цитата:

Попробовал, твой вариант. Не вышло.
Да там выходить то нечему скрипт в одну строку, и поменять нужно всего одну цифру в нем.
AU3_Spy.exe запустил навел на окно ВУметра и посмотрел меняется ли параметр
http://jpegshare.net/thumbs/29/ab/29...63dfab19c0.jpg

или в такой же утилите Автоита...
http://jpegshare.net/thumbs/87/c3/87...70aeae338e.jpg

изменил цифру перекомпилил скрипт.

Евген_21 16.01.2017 16:25

duzzy
Цитата:

Да там выходить то нечему скрипт в одну строку, и поменять нужно всего одну цифру в нем.
AU3_Spy.exe запустил навел на окно ВУметра и посмотрел меняется ли параметр
Да, это первое что сделал. Все то же самое что у тебя .
Но, не работает.

duzzy 16.01.2017 16:28

Евген_21

Цитата:

Но, не работает.
Странно должно работать...
Но можно и Автоитом пользоваться он нормально работает :)

Евген_21 16.01.2017 16:34

Цитата:

Сообщение от duzzy (Сообщение 379767)
Но можно и Автоитом пользоваться он нормально работает :)

Работает, отлично.

seriousstas 16.01.2017 19:10

Что-то Вы меня запутали ..
Что работатет, что не работает ... :)
duzzy
AHK не работал в виртуалке у меня с 7-ками.
Сделал вывод , что в 7- ке по другому обработка команды колеса мыши .
А этот скрипт работал везде , вот и предложил на тест..

Евген_21 16.01.2017 19:14

Цитата:

Сообщение от seriousstas (Сообщение 379783)
А этот скрипт работаел везде , вот и предложил на тест..

Я сразу сказал, что этот скрипт у меня работает.

seriousstas 16.01.2017 20:05

Цитата:

Сообщение от Евген_21 (Сообщение 379784)
Я сразу сказал, что этот скрипт у меня работает.

Ок - добавлю в сборку ..

duzzy 16.01.2017 23:08

seriousstas

Цитата:

Что-то Вы меня запутали ..
Что работатет, что не работает ..
Да это меня на словестный понос пробило)))

У меня как ни странно и...
AHK --- после смены instance и перекомпиляции в авто,
и версия Автоит работает без проблем.

duzzy 18.01.2017 03:41

Завершил писанину по подмене :smile2: DSPlayer на PotPlayer, если кому интересно можете пробовать(только сначала прочитайте внимательно).

sirota 18.01.2017 09:36

Цитата:

Сообщение от duzzy (Сообщение 379954)
(только сначала прочитайте внимательно).

Цитата:

Кто слушает радио через DSPlayer не смогут им пользоваться, для прослушивания радио через DSPlayer нужно переделывать скрипт управления.
Будем ждать новый скрипт....без радива сегодня никуда :dntknw:

120705 18.01.2017 14:45

Цитата:

Сообщение от sirota (Сообщение 379963)
Будем ждать новый скрипт....без радива сегодня никуда :dntknw:

Поддерживаю..:derisive:

120705 18.01.2017 14:54

Цитата:

Сообщение от seriousstas (Сообщение 379788)
Ок - добавлю в сборку ..

Стас , пардон, я что то пропустил. Какой, куда, как.:?

prts 18.01.2017 15:35

А почему не слушать радио через foobar?

120705 18.01.2017 15:52

Цитата:

Сообщение от prts (Сообщение 379984)
А почему не слушать радио через foobar?

Это относится к FM радио (hd, сил...., и т.д)

prts 18.01.2017 16:47

Понял, звиняюсь!!!!

shumaz 20.01.2017 05:18

seriousstas
давно хотел написать за это, да ни как не могу закономерность установить.
в общем случается это у меня если прыгать с foobar на ЯндексНавигатор чаще всего.
например: добавили трэки в плейлист... слушаем... переключаем трэки - всё ок... перешли на ЯД юзаем его какое то время (переключается тоже трэки не переходя на окно foobar)... потом возвращаемся к foobar, а плейлист пуст, пока не переключить на следущий/предыдущий трэк (после этого появляется список и всё ок).

Subvender 20.01.2017 21:06

Добрый вечер!
Есть простой способ заставить работать стрелки клавиатуры вверх вниз для выбора треков и папок в библиотеке без предварительного тапанья в экран пальцем?
Хочу кнопки вывести на джойстик или руль... Вроди бы можно и в экран ткнуть для активации курсора, но если это делать в библиотеке , то папка сразу падает в плейлист вытесняя ранее проигрываемые треки.
http://pccar.ru/showpost.php?p=376312&postcount=2992 - это лекарство пробовал, не помогает.

duzzy 24.01.2017 00:30

Можно сделать одну приятную фичу...
Транслировать в Икар Тайтл из сборки :)
Недавно опробовал, мне понравилось)))

Теперь не обязательно использовать SkinMediaTitle.exe для сборки фубара.

Выглядит так...
http://jpegshare.net/images/84/aa/84...bd31f3bfa2.jpg

Если интересно то вот код для МПС панели(сделал по подобию SkinMediaTitle)
Код:

var rr = new ActiveXObject("RideRunner.sdk");
var foob_window_title_prev = "";

title_check_timer = window.CreateTimerInterval(3000);

function on_timer(id) {

        if (title_check_timer && id == title_check_timer.ID) {
                title_set();
        }

}

function on_playback_new_track() {
title_set();
}


function on_playback_dynamic_info_track() {
title_set();
}

function title_set(){
        tf_artist = fb.TitleFormat("$upper([%artist%])").Eval();
        tf_title = fb.TitleFormat("$upper([%title%])").Eval();
        tf_txt = tf_artist + (tf_artist != "" ? " – " : "") + tf_title;
        foob_window_title = tf_txt;
        foob_window_title_prev = rr.getinfo("=$CurrentSkinMediaTitle$");
        if(foob_window_title_prev != foob_window_title) {
                rr.execute("SETVAR;CurrentSkinMediaTitle;" + foob_window_title);
                foob_window_title_prev = foob_window_title;
              }

}


seriousstas 24.01.2017 02:39

Цитата:

Сообщение от duzzy (Сообщение 380537)
Можно сделать одну приятную фичу...
Транслировать в Икар Тайтл из сборки :)
Недавно опробовал, мне понравилось)))

Теперь не обязательно использовать SkinMediaTitle.exe для сборки фубара.

Выглядит так...


[/CODE]

А что ему нужно ?
Вставил вместо библиотеки и :
Цитата:

JScript Panel ({1E9127FE-97F0-4B7B-B9E0-9AA457C03C6A}): Ошибка выполнения Microsoft JScript:
Объект не поддерживает это свойство или метод
File:

Line: 4, Col: 1


duzzy 24.01.2017 03:15

seriousstas

Я очепятку сделал :)
Цитата:

вот код для JSPanel
Это код для МПС панели...
В JS нет window.CreateTimerInterval(3000);, но можно и для JS сделать.

Я из МПС транслирую в Икар.
Таймер нужен для проверки переменной в Икаре.

Работает с треками и с инет-радио :).

seriousstas 24.01.2017 03:21

Цитата:

Я из МПС транслирую в Икар.
Таймер нужен для проверки переменной в Икаре.
ага .. а кстати тем , кто пользуется этим придется запускать от админа )
Чуть изменил новый скрипт для обычных обложек Геннадия , тестю ..

duzzy 24.01.2017 03:35

seriousstas

Цитата:

ага .. а кстати тем , кто пользуется этим придется запускать от админа )
почему от админа ?

Цитата:

Чуть изменил новый скрипт для обычных обложек Геннадия , тестю ..
Ну и как, шустро работает ?
Я пока остановился на скрипте Макса :).

А для Био дома пользую Вилба.

seriousstas 24.01.2017 03:38

Цитата:

почему от админа ?
Нужно Метро ..
Цитата:

Ну и как, шустро работает ?
Второй метод (перекл. 1-2 через меню) - вполне..
Его "+" это правильная иерархия выводимых изображений ,
если папка со сканами и рядом альбомы с музыкой (или когда папка в папке ..)..
Цитата:

А для Био дома пользую Вилба.
Очень хорош, но я привык уже с мод-у (и его автопереключению) - всегда есть какая-то картинка и текст )

duzzy 24.01.2017 03:56

seriousstas

Цитата:

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

Цитата:

Его "+" это правильная иерархия выводимых изображений
Надо будет глянуть :)
У Макса + в том что нет затупов на жирных обложках. По правильности отображения я особо не заморачивался)))

Цитата:

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

seriousstas 24.01.2017 04:41

duzzy
тут , что нового в 4Icar_14_3_MPS_UNI :
http://foobar2000.ru/forum/viewtopic.php?p=63783#p63783
По "зАЩитнику" кинь там где-то в описании в готовых ссылку на него..

seriousstas 24.01.2017 04:57

shumaz
Цитата:

потом возвращаемся к foobar, а плейлист пуст
Известный косячок - был пару раз , когда ковырял плейлист . Сейчас не сталкиваюсь. .

prts 24.01.2017 14:29

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

Сообщение от seriousstas (Сообщение 380553)
duzzy
тут , что нового в 4Icar_14_3_MPS_UNI :
http://foobar2000.ru/forum/viewtopic.php?p=63783#p63783
По "зАЩитнику" кинь там где-то в описании в готовых ссылку на него..

Возник вопрос: при прослушивании радио иногда под одной картинкой радиостанции находится несколько других (на скриншоте - выделено красным), почему?

duzzy 25.01.2017 00:12

seriousstas

Цитата:

тут , что нового в 4Icar_14_3_MPS_UNI
Добавил.

bukaxa 28.01.2017 14:13

Подскажите чем отличается в выборе вывода звука wasapi pathc

kaamoss 28.01.2017 21:09

ВСем добрый вечер. Вопрос по сборке NEON, собственнно вопрос к уважаемому duzzy

Ситуациия такая, покажу на примере одного альбома. Альбом содержит два CD тоесть две папки, если открывать сразу оба альбома, то фубар их раскидывает на отдельные трэки а не на альбомы. На видео всё видно.
Подскажите как поправить это!!

https://youtu.be/E4pLt-xkK-U

duzzy 28.01.2017 22:50

kaamoss

Привет !

А сортировка в скрипте плейлиста как настроена ?
тут...
http://jpegshare.net/thumbs/b3/af/b3...40bde26008.jpg

------------------------------

Вот посмотри видос как у меня показывает...

seriousstas 28.01.2017 23:15

Цитата:

Сообщение от bukaxa (Сообщение 380809)
Подскажите чем отличается в выборе вывода звука wasapi pathc

По разному поток попадает в буфер .
Цитата из
Цитата:

Обратите внимание: у WASAPI exclusive существует два режима буферизации — Event и Push. Первый режим является технически более совершенным и лучше совместим с USB устройствами. Однако, режим event поддерживается не всеми звуковыми картами. Таким образом, предпочтительным является режим event. Если же воспроизведение в нем работать отказывается, необходимо переключиться на режим push.


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

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