![]() |
Скрипт для отправки команд из Икара в фубар для МПС :wink2:
Для функционирования скрипта необходима библиотека автоит AutoItX3.dll(в корне папки сборки в папке "assemblies" и еще манифест AutoItX3.dll.manifest, в свежей сборке FLAT есть все что нужно). И плагин foo_ui_hacks. Пример кнопки для Икара: B,5,120,250,113,"SETVAR;SENDFB2K;nexttrack", SENDFB2K --- переменная которую объявляем в икаре и читаем в js скрипте фубара nexttrack --- команда которую прочитает фубар при например нажатии кнопки Работает так, запускаем фубар из икара, скрипт в фубаре начинает работать, опрашивать переменную икара "SENDFB2K", как только из икара переменной присвоено какое то значение и если оно совпадает со значением в переключателе выполняется то что было прописано под этим значением, при выполнении переменная икара обнуляется. Команды прописанные в переключателе(nexttrack, prevtrack, playorpause... и т.д.)прописаны как пример, можно прописывать что угодно, не забывая повесть команду на кнопку в икаре. PHP код:
Видео по работе снимать не стал, разобраться не сложно... но если нужно сниму Теперь не обязательно использовать фубар с командной строкой, команды приходящие из икара обрабатываются почти сразу фубаром, да и использовать так проще и выбор того что можно делать больше :spiteful: |
Слава - хорошая альтернатива!
НО! Цитата:
Я пока так делаю - при помощи : C:\XXX\YYY\Documents\iCarDS\skins\Chameleon\Script s\SendKey.exe (один из вариантов использования) : 1. При запуске скрипта есть контроль раскладки (всегда английская! для отправки анг буквенных символов) 2. Скажем - отправляю повороты колеса (+2) над стрелочниками: Код:
B,770,518,126,80,"RUNW;$SKINPATH$\Scripts\sendkey.exe|"[CLASS:{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}]" "Analog VU Meter" "" "+2" как это сделать через AutoItX3.dll? Цитата:
Когда отправляем разово - цикла ведь нет ? Ну скажем : RUN;$foobar_exe$|/command:"repeat (track)" - стучим и получаем мгновенно ответ , а не через пол секунды - разве нет ? Так-же и через sendkey - запуск > ответ. Я просто пока не вижу преимуществ :dntknw: |
seriousstas
Цитата:
Цитата:
Цитата:
Пример: autoit_obj.ControlFocus(foobar_class, "", pl_class); autoit_obj.ControlSend(foobar_class, "", pl_class, "{F3}"); Цитата:
Да это опрос в цикле одной переменной которая принимает разные значения. Да когда отправляем разово цикла нет, НО при этом нужно: 1.выполнить команду 2.запустить ехе-шник(а это как правило скрипт автоит, который обрабатывается при его старте) а это тоже время и ресурсы. Ты также запускаешь копию фубара с командой и на это так же тратится время, так как запускается еще одна копия которая отрабатывает ком строку. Время цикла можно уменьшить и до 300 или 100 мс, это опрос всего лишь одной переменной в икаре, на производительность это почти не влияет. Могу даже больше сказать, многие варианты обработчиков работают так, только опросчик работает в другом потоке с очень короткой задержкой, это самый простой вариант опроса не используя сложные методы. По такому же принципу собрал себе плагин для пот-плеера(он кривой косой но работает) :smile2: Единственное отличие этого опросчика в JS что он работает в главном потоке. В этой схеме удобство еще в одном, тебе не нужно писать скрипты в икаре, нужно лишь отправить одну команду для приема фубаром т.е. js-ом а он ее уже обработает как необходимо. Это универсальная схема которая позволяет делать ну почти все в сборке... например: показывать/прятать панели, работать с плейлистами, менять порядок проигрывания, громкость, переключать ДСП, включать опции в панелях, запускать собственные кастомные функции... и т.д. т.е можно использовать почти все возможности js. А ком строка фубара это может ?... я очень сильно сомневаюсь Видос я запишу чуть позже будет просто более наглядно как оно работает. Это не замена всего что можно, это просто еще один вариант использования js :smile2: |
Цитата:
Этот скрипт , что выше - отдельный или вставляется скажем в MPS ? Цитата:
|
Цитата:
Запуски AutoHotkey и Autoit Получаю мгновенный запуск AutoHotkey-я и думающий где-то 300-500мс Autoit :ohmy2: |
seriousstas
Это как вариант, разнообразного использования Цитата:
Только нужно добавить в on_timer() if (rr_getinfo_timer && id == rr_getinfo_timer.ID) {...} if (rr_obj_check_timer && id == rr_obj_check_timer.ID) {...} и проверить переменные чтоб не совпадали. Можно и отдельную панель сунуть просто ее спрятав :) Цитата:
|
Цитата:
Не помню точно схему но суть в том что при запуске сначала распаковывается скрипт затем он попадает в обработчик ну и мы видим запуск. По сути как js построчное чтение и выполнение кода. |
Цитата:
Понял, что сжатие - не влияет .. Тут да - разные методы походу.. Но уже в 8.1-ке и 10ке любые скрипты работают быстро.. |
Цитата:
Скорее всего да разные методы, а виртуалка позволяет увидеть многое что невидно на живой системе. Сейчас видос отсниму по обработчику js глянешь как это хозяйство работает :wink2: У меня эта идея давно в моем воспаленном мозге роилась, но использование сборки с интерфейсом мне более по душе. |
Цитата:
Это словами сложно пояснить)) |
Цитата:
А тут как раз и появляется интересная возможность использовать как икар так и сборку отдельно, хочешь так а хочешь по другому. Вот видосик как работает эта схема. |
Цитата:
http://pccar.ru/showpost.php?p=402275&postcount=489 я и Твою пробовал , что в теме полезных утилит - долго .. А у АвтоХоткеев кстати есть способ переключать быстро под любой ОС. одна строка : Код:
SendMessage, 0x50,, 0x4090409,, A |
seriousstas
Да есть такая хрень)) Языки в этих системах по разному обрабатываются(по русски не знаю как правильно сказать), т.е. в 7-ке у каждого нового процесса язык меняется на язык по умолчанию, в 8-ке он соответствует переключателю в таскбаре. В 7-ке решается очень просто... выбором Eng языка по умолчанию http://jpegshare.net/thumbs/ce/e4/ce...e8dad7dfe0.jpg http://jpegshare.net/thumbs/c3/2c/c3...b7e5ab3bd3.jpg В 8-ке проблем с эти не было. Код:
SendMessage, 0x50,, 0x4090409,, A _SendMessage(...) в примере который я выкладывал по переключению языка использовано прямое обращение к библиотеке без функций оберток. DllCall('user32.dll', 'ptr', 'SendMessage', 'hwnd', $hWnd, 'int', 0x0050, 'int', 1, 'int', $Ret[0]) В автохоткее скорее всего тоже самое просто в обертке "SendMessage". Да и в автохоткее такой сиснтаксис что просто жесть)), пока разберешься как описать что то уже расхочется что то делать)) Можно еще программку написать которая будет принудительно менять раскладку постоянно, но думаю это лишнее. |
Цитата:
Я уже почти заделал sendkey на AHK для Икара . Вечером потестирую . Пока проверил быстродействие с переключением раскладки под 7(x86)-кой - все шустро . duzzy Цитата:
:offtopic1: Не по теме - пол дня убил на разборку моноблока Asus , что-б батарейку заменить..)) (надоело время вручную ставить) Инженерные гении - чтоб заменить батарейку нужно, кроме видеонструкции снятия корпуса ,мать, проц и охлаждение снимать(или не снимать а отгинать трубки охлаждения - повреждая их, как я и сделал) - вобщем всего раскрутил 86 болтов, специально посчитал + клипсы разные шлейфы разъемы и заглушки )) Вся кровать в детальках была - после сборки осталось снаружи много чего)) Под плату снизу засунули ..:pila: |
seriousstas
Цитата:
Цитата:
Мне проще я убрал из сборки скрипты автоита)) Теперь через js пользую. __________________________________________________ ___ :offtopic2: Инженерный гений он сейчас везде))) Хорошо хоть в плату не впаяли))) Сейчас все одноразовое, больше говна больше продаж))) А автопром это же вообще нечто без слез не взглянешь на эти "произведения искусства"... дешевый говняный пластик, кожа с жопы суслика в лучшем случае, сборка просто ад(саморезы серьезно?!?!), лакокрасочное только намазано(в некоторых местах и грунта только опыл), про кишки даже писать смысла нет... а бабла просят кучу. И с ПО такая же хрень... Вон с кнопками в ДСП(в фубаре), попросил добавить как опцию, на что получил финальный ответ мол что вам не нравится все новое что я добавляю это же новый дизайн... предложил мне клавой плагины в цепочке двигать))) А 10-ка - перелопатили старые кишки... изуродовали интерфейс(сделали из него прожектор) насовали туда всякой херни... |
duzzy
Цитата:
Скрипт sendkey. exe на AHK Код:
SetControlDelay ,0 ну и пример строки: Код:
"foobar_del","RUNW;$skinpath$scripts\sendkey.exe|MegaPanelSplitterWindowContainer1 {NUMPAD8} "ahk_class {E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}"" Код:
B,130,518,126,80,"RUNW;$SKINPATH$\Scripts\sendkey.exe|"" "" "" WheelUp" |
я смотрю тут все перемешалось, кони, свиньи...
потыкался по теме, было подумал, что я запостил не туда, я в теме про айкар написал, что хочу фубар. увидел эту тему, а тут про айкар... I messed |
Цитата:
Ну почему-же .. тут про шаблон , позволяющий управлять сборкой foobar2000 из IcarDS своими элементами и кнопками.. А вобщем - соглашусь - вопросы по IсarDS тут |
seriousstas
Спасибо Большое ! А то я с ahk вообще не дружу)) |
duzzy
Цитата:
Я еще подумал , переключение на РУС. раскладку можно делать при наличии 5-го аргумента (те по условию..) , куда можно писать что уходно, например RUS_ON .(позже поправлю скрипт) те в строке пишем : Код:
B,130,518,126,80,"RUNW;$SKINPATH$\Scripts\sendkey.exe|"" "" "" WheelUp "RUS_ON"" |
Евген_21
Цитата:
Вы меня как то не так поняли))) Это не навязывание чего то другого для использования, это лишь еще один вариант/пример использования JScript Panel в связке с Икаром. Это не идея это полностью рабочий механизм взаимодействия двух программ. Цитата:
Код:
function on_playback_time(time) { тут обнулять переменную икара для того чтоб слайдер был в 0 при переключении на новый трек Код:
function on_playback_new_track() { Этот вариант тоже подойдет... Вариант 1: Более сложный. Нужно чтоб слайдер икара записал в переменную "foobar_trackpos" свое значение, js скрипт считает значение переменной "foobar_trackpos" и передвинет время трека в фубаре... Вариант 2: Более простой, отправляем команду "foobar_trackpos", js ее получает и запускает механизм считывания время слайдера из икара, т.е. тупо читаем значение слайдера... ниже пример, переменная icar_slider_pos это переменная слайдера икара(т.е. переменная из самого икара которую нужно прописать в js скрипте) Код:
case 'foobar_trackpos': Еще не понятно в каком формате икару нужны цифры... пример одной минуты(1 минута) 00:60 или 60 или 0060 или 60000 ... В общем от тебя нужна инфа :) - Какие переменные нужны для слайдера в икаре(они могут быть своими или жестко прописаны) ? - Какая команда выставляет слайдер в икаре(SETVAR или еще что то) ? - Какой формат времени нужен икару для слайдера ? Пример из фубаровского сикбара на JS... fb.PlaybackTime = fb.PlaybackLength * (x - seek_x) / seek_w; выставляем время = длина трека * (X - положение переменной X на сикбаре) / ширину сикбара; ... |
Перекомпилил с более свежим сдк(SDK-2015-08-03) (других изменений не делал)
один старенький классный плагин VLevel --- Volume Leveling Plugin в папке фубара называется foo_dsp_vlevel VLevel - динамический компрессор, который усиливает тихие части музыки Классная штука , не понятно почему на него забили на гидрогене... ??? Пихнуть в цепочку ДСП и старая музыка зазвучит по новому :band: Сначала покажется что эффекта нет, попробуйте классику или альтернативу с норм. вокалом, ну или на одном треке добавлять или удалять из цепочки ДСП этот плагин. Разницу почувствуете сразу)) Страничка на гидрогене Скачать мою компиляцию Исходники(оригинал) Если у кого то будет интерес что то поправить или переделать могу скинуть свою версию для VS2015. ... |
Цитата:
А с этим ,как быть (точнее с кириллицей), хотя на Твоих скринах верно отображает: Код:
[ :::: это консоль так .. , рисует норм.. Посмотрел , на домашнем - у меня устройств куча .. выводить все - не лучший способ. Думаю , как-то по другому (не списком) сделать... |
seriousstas
Привет ! кирила показывает так... http://jpegshare.net/thumbs/1e/6b/1e...4ded280810.jpg вызов возвращает JSON array, поэтому нужно парсить результат JSON.parse() out_dev = fb.GetOutputDevices(); --- берем так out_dev_arr = JSON.parse(out_dev); --- парсим свойства для проверки: out_dev_arr[0].active --- активно уст-во или нет out_dev_arr[0].name --- название уст-ва Цитата:
Старый вариант тоже прекрасно работает и не тратит ресурсы :smile2:, нужно только один раз добавить устройства. Новый ничем не лучше, только работает автоматом. Можешь попробовать назначать на кнопки полученные устройства, т.е. получил устройства, затем показал что за устройства и выбрал нужные устройства, затем запомнил в Properties... других вариантов пока не пришло в голову. __________________________________________________ _ Кстати до Петра дошло что не всем нужна версия 1.4, уже 1.3.18 beta 2 есть. Я остаюсь на 1.3 в 1.4 ДСП настраивать не реально, да и реальных улучшений я для себя не нашел. Сборку для 1.4 сделаю(она и так есть просто жду релиза). |
duzzy
Цитата:
Цитата:
Сегодня поэкспериментирую, руки дошли... Цитата:
народ вначале готовит сборку дома, затем переносит папку с флехи..Я ДСП - раз настроил и клацаю) |
seriousstas
Цитата:
Панели редко используемые и так хватит)) Цитата:
Можно еще попробовать сравнивать по каким то параметрам(типо как по маске), то что ненужно будет исключено. Т.е типо уст-в: Null output, дублей DS... Но тут тоже гемор, одни уст-ва кому то нужны а кому то нет. Null output тоже используется при определенном выводе... Цитата:
|
Цитата:
У меня есть идея ..Завтра попробую Цитата:
|
Разобрался с размером окна после выхода из гибернизации, проблема была не столько в сборке, так как у меня было два ярлыка и оба запускали сборку с разными настройками, я так и не понял с чем это связанно, но я удалил все и заново поставил сборку, затем задал минимальный размер окна равный разрешению и размер перестал уходить. Но из этого теперь две другие проблемы вылились, теперь сборка залезает на меню пуск, его не видно, из за чего нельзя свернуть сборку, и вторая более существенна, это бывает при выходе из гибернизации отображается только нижняя строка с конпками, остальное все черное,помогает только перезапуск сборки.
Что хотелось бы видеть в обновлении: 1. выделение в плейлисте уходит и кнопками вверх/вниз нельзя передвигаться по плейлисту, хотелось бы чтобы всегда был активен плейлист, либо после долгого ничего не делания, он активировался, надеюсь понятно объяснил 2. я раньше пользовался osd плагином, он отображал все действия поверх всего как псевдоosd, название песен выводил при переключении и громкость при изменении, не планируете добавить такой плагин? Очень удобно особенно когда фубар свернут в трей |
Цитата:
и она свернется Цитата:
Цитата:
РЕШЕНИЯ ДВА: Перезапускать можно в Икаре (там встроена такая возможность). Или скриптом, который можно положить в автозагрузку. По другим вопросам (по 4iCar) отвечу сюда |
Доброго времени суток, Уважаемые!
Скачал 4Icar_14_4_Light из соседней темы. Пароль еще раздается или уже платно? |
Цитата:
Код:
http://foobar2000.ru Как выйдет финал (в тч и ядра плеера) - обновлю и 4Icar_14_5_Light Там и шапку нужно поправить.. |
Цитата:
|
Цитата:
|
Заделал слайдер для фубара)))
треки... http://jpegshare.net/thumbs/c1/94/c1...905d2757b8.jpg (клик по слайдеру передает время сборке фубара) инет-радио... http://jpegshare.net/thumbs/04/24/04...38074c8c9a.jpg (в области слайдера слева счетчик общего времени щелкает, а справа пишет "radio") Теперь можно из скина управлять сикбаром(выставлять время трека) в сборке. Видос(тестовый для пересмотра поэтому длинный) как работает. Будет работать с плагином iCarDSPlayerFIX, без него не получится... Свежую версию еще не выкладывал, как выложу сообщу тут. ... |
Цитата:
Максимум, что смог сделать...записать текущие показания трека(время)в ini файл. Понял, что без Dll не обойтись. Но тут я ни чего не смогу сделать, так как нуб. Подмоги, сделать это ,для сборки от Стаса и шаблона для неё. Буду при много благодарен. С уважением, Евгений. Видео, посмотрел. Респект. Побольше таких больных людей. В хорошем смысле. |
Евген_21
Привет ! :) Это для всех, нужно только плагин поставить и почти все)) Чуть позже тут объясню как пользоваться, сейчас занят немного. |
Цитата:
|
Евген_21
:) Не боись там все просто. Две переменные отправляешь из сборки в икар, и одну читаешь(для установки время трека). Я уже скоро) |
Цитата:
|
Евген_21
Пожалуйста ! Я с Вами, я же болен на всю голову)) И я рад что мы вместе, когда мы вместе мы можем.... ну почти все)) Итак слайдер для сборки фубара... Для начала нужно прописать немного js кода в МПС панель: в on_playback_time пару строк... str --- это для получения время в икаре(прошло/осталось) длинная команда икара(rr.execute("...")), отправка время трека в икар для слайдера PHP код:
Нужно прописать в интервальном таймере для получения времени от слайдера икара. Если не понятно как сделать, пишите я распишу как сделать таймер. Можно прописать там где в икар отправляется название трека и исполнитель --> =$CurrentSkinMediaTitle$ PHP код:
http://jpegshare.net/images/0c/c7/0c...eb3c0c5bbe.png Слайдер для файла 1_cf_70.txt... Переменная foobar_trackpos --- это код слайдера /---icar to foobar slider Код:
S02,260,93,500,10,212,55,600,55,,01,,10,"foobar_trackpos","" время трека --- оставшееся время(на скрине выше отмечено красным) Код:
L,185,88,115,22,#cf_FontBarRed#,#cf_FontBarGreen#,#cf_FontBarBlue#,15,#cf_FontBarStyle#,"=$foobar_pb_time$","CENTER" Код:
L,217,60,590,50,#cf_FontBarRed#,#cf_FontBarGreen#,#cf_FontBarBlue#,20,#cf_FontBarStyle#,"=$CurrentSkinMediaTitle$","SCROLL-CENTER" В плагине есть одна проблема, пока не могу ее забороть... если активен любой медиа источник(сборка фубара, видео и т.д.) и выполнить команду RELOADSKIN икар упадет. Например если менять разрешение при играющей сборке получим падение. Скачать можно тут. В архиве с плагином пложу файлы и экраны которые менял. ... |
Часовой пояс GMT +4, время: 14:22. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot