PDA

Просмотр полной версии : Кастомизация iCarDS


Pinin
31.03.2011, 11:17
Похоже, связка фронта iCarDS и скина CFStyle как в свое время народ и партия - едины... Но в проекте, над которым сейчас работаю, возникла необходимость кардинально переписать интерфейс скина.

Ну, фигли нам, кабанам: чай SkinEditor - это, практически, наше всё, фотошоп тоже ранее не только видели, но и за менюшки щупали неоднократно, так что - флаг в руки, и у перед! Однако ж обломался...

Те, кто ранее перерисовывал роадраннеровские скины под себя - технологию этого процесса знают досконально: открываешь в SkinEditorе пациента и все как на ладони. Кнопки, индикаторы, флешки, их координаты, прописанные на них команды. Редактируй-не хочу...

Открываешь CFStyle... Хочу-не редактируется. То есть редактируется, конечно - остро теоретически. Но поскольку сама идеология построения этого скина иная - очевидные вещи не работают.

Открываем главный Skreen - menu. Ничего похожего на то, что мы видим во фронте на этом месте нет: рис.1 аттача
Понятно, что все кнопки интерфейса (не графические их файлы - эти-то уже понятно, что в другом месте), их текстовое описание - лежат где-то отдельно. Пробуем найти - по содержимому вроде бы интересны файлы 1.txt, 2.txt и т.п.

В том же эдиторе воспроизводим их : рис.2, рис.3 аттача

Анализируя содержимое файлов *.skin понимаем, что отдельные скрины обращаются к упомянутым текстовым файлам для подгрузки в себя тех или иных комбинаций кнопок - уже что-то, но яснее не становится.

Может, поковырять main_screens.ini? В первой же строке - ага:

screen_main_img=main.png

Ищем main.png - находим main_off.png и main_down.png. Понимаем, что знак "равно" в цитате - не совсем "равно", но лишний раз подтверждаем теорию о том, что все тут блочно и по вызову... И не страдает интуитивностью...

В общем, с задачей перерисовать интерфейс фронта в минималистическом стиле - пяток пользовательских кнопок по нижней части экрана (из которых две - настройка и закрытие фронта) плюс пара окон под флеш и встроенное с помощью ProgScriptNew.exe окно внешнего приложения, я позорно не справился... :blush:

Буду признателен за любую (пусть даже теоретическую) помощь в этом вопросе.

Bersenev
31.03.2011, 11:42
Давай по порядку, ты говоришь что хочешь обрезать, а я отвечаю как это сделать.

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

RRSkinEditor прекрасно с этим справляется, только при соблюдении определённых правил

Pinin
31.03.2011, 12:03
Ок! В аттаче вчерне набросанный скелет главного меню: нижний ряд - кнопки (B1-B3 пользовательские, B4, B22 - настройка и закрытие фронта), одно окно под флеш, одно - под индикаторы, одно под приложение, встраиваемое скриптом.

Bersenev
31.03.2011, 12:19
Ок! В аттаче вчерне набросанный скелет главного меню: нижний ряд - кнопки (B1-B3 пользовательские, B4, B22 - настройка и закрытие фронта), одно окно под флеш, одно - под индикаторы, одно под приложение, встраиваемое скриптом.

Это будет экран главного меню?

А лучше опиши для начала, какой функционал будешь делать и какие экраны будут нужны, просто у меня создаётся ощущение, что легче будет сделать с нуля, чем обрезать CFStyle

Pinin
31.03.2011, 14:46
Хм, дареное в прок не идет - эдак я ничему не научусь... С другой стороны, было бы наглостью проситься в подмастерья.

Хорошо. Озвучиваю ТЗ: на компе будет завязана система "умного дома". Скелет приведен действительно для главного меню скина. Пока реально работает лишь система подъездного видеонаблюдения и GSM сигнализация квартиры. Последняя по СОМ-порту заливается рабочими конфигурациями (тревожные телефоны, голосовые сообщения, логика срабатывания датчиков и т.п. вещи) - т.е. одна из пользовательских кнопок будет вызывать ее сервисную прогу. Полагаю, со встраиванием ее особых проблем не будет - там хитростей никаких вроде нет. Название перехватываемого окна сейчас сказать не могу, посмотрю вечером.

Второй экран - веб интерфейс видеорегистратора на 4 камеры. Ввиду того, что на 9 дюймовом экране даже с одной камеры картинка не слишком большая (а штатно выводится блок из 4 превьюшек + панель управления) - браузер будет настроен на стартовую страницу ВИ по умолчанию и открываться должен без обрамления вообще, в полный экран. При этом кнопки закрытия приложения и перехода в главное меню скина все же нужны (в overlay-варианте).

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

На экране же главного меню (помимо кнопок) планируется флеш с часами и календарем, вывод параметров системы (температура, загрузка проца и т.п.) и (не знаю, правда, насколько это осуществимо) - вывод блока прогноза погоды на 10 дней отсюда (http://www.intellicast.com/Local/Weather.aspx?location=RSXX0069).
Пока, чтобы не путаться с вводом адресов, это внутреннее противоречие планировалось разрулить за счет применения в системе двух разных браузеров с разными стартовыми страницами (IE для видеонаблюдения и FF для погоды). Хотя, не уверен, что ProgScriptNew.exe сможет справиться с такой задачей - отобразить в окне главного меню вырезанный с интернет-страницы графический блок...

Вот вкратце как-то так.

Bersenev
31.03.2011, 15:14
Как я и подозревал, из-за пяти, максимум десяти экранов не стоит перелопачивать почти 500 экранов CFStyle.

Значит так.

1. Рисуешь экран главного меню, расставляешь там всё как тебе нужно, это ты умеешь, если планируешь что флеш с часами и календарём должен меняться, то сразу задаёшь в skin.ini переменную main_flash=clock.swf , а в параметре флеша пишешь "$skinpath$Flash\$main_flash$". Тогда потом можно будет сделать выбор нужной флешки из папки Flash, находящийся в папке скина. Погоду тоже вывести можно, но об этом позже.

2. По поводу видеорегистратора, тоже осуществимо, но при условии встраивания внешнего браузера, можно IE, но удобнее будет с Firefox, встраивать придётся через скрипт ProgScriptNew. Хотя можно попробовать и с внутренним брайзером, без скрипта, так как тебе нужен именно весь экран, а не его часть.

3. А с программой GSM сигнализации проблем вообще не вижу.

В общем всё можно сделать с нуля за пару дней. Если захочешь делать какие то настройки (цвета кнопок, выбор фона, выбор флешки и т.д), то можно будет просто взять куски из CFStyle и всё.

Так что лучше начинай с нуля, быстрее будет.

Pinin
31.03.2011, 15:54
Т.е. сейчас фактически я рисую скин для икара (независимый от CFStyle), требования к которому не отличаются от требований к скинам для RR, а потом добиваю его отдельными кусками от твоего (окно браузера и т.п.)?

При разрешении монитора 1024х756 размеры графики скина такие же, или сразу делать 1024х600 (почему, кстати, для CFStyle выбран такой размер?)?

Bersenev
31.03.2011, 16:03
Т.е. сейчас фактически я рисую скин для икара (независимый от CFStyle), требования к которому не отличаются от требований к скинам для RR, а потом добиваю его отдельными кусками от твоего (окно браузера и т.п.)?

Да

При разрешении монитора 1024х756 размеры графики скина такие же, или сразу делать 1024х600 (почему, кстати, для CFStyle выбран такой размер?)?

Рисуешь картинки размером 1024х756 и на их основе делаешь скин.

В CFStyle такой размер потому что у меня в машине стоят EEE901 и EEE900, а у них мониторы 1024х600 так и рисовал. Как потом оказалось это наиболее оптимальное разрешение, для скина который должен работать в пяти разрешениях.

Pinin
31.03.2011, 16:22
Понял, благодарю!

Pinin
03.04.2011, 13:20
Ну, в общем набросал костяк - проект скина в аттаче, функционал описан выше, внешний вид планируется примерно как на картинке.
Пока непонятка, как организовать браузер (вкладка "Камеры") и захват окна с Интелликаста...

odessit
03.04.2011, 14:17
Классс!!! Очень красиво!!!

Pinin
03.04.2011, 14:51
2 odessit

Сенкс! Теперь бы еще функционалом наполнить...

Bersenev
03.04.2011, 14:57
Ну, в общем набросал костяк - проект скина в аттаче, функционал описан выше, внешний вид планируется примерно как на картинке.
Пока непонятка, как организовать браузер (вкладка "Камеры") и захват окна с Интелликаста...

Давай по порядку. Начнем допустим с камер. Давай скриншот браузера как работает сейчас, и что хочешь получить в результате, а я скажу как это получить

Pinin
03.04.2011, 15:32
Ок! На эскизе - внешний вид интерфейса регистратора. Надо его вписать в 1024х756 без обрамления (т.е. все панели самого браузера не нужны). А вот оверлеевские кнопки закрытия приложения и возврата в скин меню (можно, кстати, эти функции совместить в одной единственной кнопке) были бы весьма желательны...

Да, нативные размеры окна - 1056х673, но если низ картинки будет обрезан - не страшно: двойным кликом по камере ее картинка разворачивается на весь экран, и так же сворачивается, так что париться с этим параметром смысла особого нет.

Bersenev
03.04.2011, 16:00
Ок! На эскизе - внешний вид интерфейса регистратора. Надо его вписать в 1024х756 без обрамления (т.е. все панели самого браузера не нужны). А вот оверлеевские кнопки закрытия приложения и возврата в скин меню (можно, кстати, эти функции совместить в одной единственной кнопке) были бы весьма желательны...

Да, нативные размеры окна - 1056х673, но если низ картинки будет обрезан - не страшно: двойным кликом по камере ее картинка разворачивается на весь экран, и так же сворачивается, так что париться с этим параметром смысла особого нет.

Если хочешь использовать именно полный экран для браузера с оверлайной кнопкой, то рисуй картинку кнопки размером 100х100 , или какой тебе по душе, на её основе делай экран overlay1.skin, в котором задай одну кнопку с командой, CloseOverlay||Main

И WBROWSER.SKIN в нем задай область

A,0,0,1024,768,

и такую строчку

Script,OnScreenStart,WEBURL;адрес_твоего_регистрат ора||OVERLAY;overlay1.skin

В главном меню на камеры вешай команду WEB

В принципе всё

Pinin
03.04.2011, 16:09
Благодарю! Сейчас попробую осуществить.

Странно - почему-то ни один из вариантов команды для кнопки камер не приводит даже к переключению на требуемый скин: Ни "WEB", ни "LOAD;WBROWSER.skin" не работают...:dntknw:

А где находятся скрипты в икаре? Дело в том, что WBROWSER.skin ссылается на Script,OnScreenStart, а папка со скритами есть только в скине CFStyle...

Pinin
03.04.2011, 18:34
Архив в предыдущем посте поправил (там ошибка имела место), но вопросы остались те же...

Bersenev
03.04.2011, 19:01
В принципе всё сделал не так, но пока такой вопрос, а почему разрешение 1024х756, обычно 1024х768. Случайно не ошибся?

Pinin
03.04.2011, 19:04
В принципе всё сделал не так

Фига се... Это вселяет... Да, с разрешением ошибка вышла, но с остальным-то что не так?

Bersenev
03.04.2011, 19:09
Фига се... Это вселяет... Да, с разрешением ошибка вышла, но с остальным-то что не так?

Сейчас немного поколдую, и расскажу что надо сделать. Но именно расскажу, а не дам результат, так лучше запоминается

Pinin
03.04.2011, 19:18
Но именно расскажу, а не дам результат

Ну дак и я с самого начала об этом ;)

Bersenev
03.04.2011, 19:25
Так должен выглядеть WBROWSER.skin

RoadRunner Skin
ROADRUNNER WBROWSER Skin
overlay_down.jpg,overlay_down.jpg,overlay_down.jpg ,overlay_down.jpg

Script,OnScreenStart,WEBURL;http://www.pccar.ru||OVERLAY;overlay.skin
/
C,0,0,1024,756
A,0,0,1024,756,

END
Область C обязательна, это мой косяк

Это overlay.skin, сразу добавил расположение на экране и прозрачность оверлая

RoadRunner Skin
ROADRUNNER overlay Skin
button.png,button.png,button.png,button.png

/POSX=900
/POSY=600
V,25
B7,0,0,123,127,"CloseOverlay||Main",""

END
Картинка для этого скина должна быть размером с кнопку как я и писал 100х100 или нужная тебе, это твой косяк.
Так как кнопка у тебя круглая, то фон вокруг неё делай розовый, чтобы он был прозрачным

Команда на кнопке Камеры вот такая WEB||Activate;!TWebBrowserForm - это тоже я накосячил

Пробуй

Pinin
03.04.2011, 19:30
Сенкс! Попробую, и по результатам отпишусь.

Pinin
03.04.2011, 20:48
Неа, не пашет...

По menu.skin:
Полагаю, что разбежка в размере jpg`ов и реальным разрешение экрана не в счет. Поэтому на это пока забил, но что-то все равно не шьется: Activate, насколько я помню, поднимает из трея уже запущенное приложение. Если в икаре есть свой браузер, может оно и должно работать (хотя с веб-интерфесом регистратора тоже не все так просто: он работает только через IE, да и то с определенными его настройками). Собственно, дальше можно было бы и не писать - перехода на скин WBROWSER так и нет - все кнопки работают, кроме этой...

По WBROWSER.skin:
overlay_down.jpg сделал просто цветным фоном (там, вроде разницы межу down, on и off быть не должно?).
Про скрипты вопрос так и остался открытым - мы откуда их вызываем? OnScreenStart в составе Икара найти не смог...

По overlay.skin:
/POSX=900
/POSY=600

- закомментчены из каких соображений? Это, видимо, положение кнопки выхода из скина, но снятие комментария тоже ничего не изменило...

Bersenev
03.04.2011, 20:54
А какая версия программы у тебя стоит?

Pinin
03.04.2011, 21:00
1.0.5.0

Bersenev
03.04.2011, 21:13
Неа, не пашет...

А у меня пашет

По menu.skin:
Activate, насколько я помню, поднимает из трея уже запущенное приложение. Если в икаре есть свой браузер, может оно и должно работать (хотя с веб-интерфесом регистратора тоже не все так просто: он работает только через IE, да и то с определенными его настройками). Собственно, дальше можно было бы и не писать - перехода на скин WBROWSER так и нет - все кнопки работают, кроме этой...

Икар и работает с IE. Activate ищит окно по имени и делает его активным, в данном случае по классу окна, у IE запущенного из под икара такой класс окна.

По WBROWSER.skin:
overlay_down.jpg сделал просто цветным фоном (там, вроде разницы межу down, on и off быть не должно?). Про скрипты вопрос так и остался открытым - мы откуда их вызываем?
OnScreenStart в составе Икара найти не смог...

Тег Script внутри файла skin, позволяет описывать команды внутри этого файла, а не в ExecTBL, а Script OnScreenStart выполняется автоматически при открытии экрана WBROWSER.skin. То есть при вызове команды WEB откроется скин WBROWSER.skin и выполняться команды WEBURL;****||OVERLAY;overlay.skin

По overlay.skin:

/POSX=900
/POSY=600

- закомментчены из каких соображений? Это, видимо, положение кнопки выхода из скина, но снятие комментария тоже ничего не изменило...

Это не комментарии , это именно такие команды, в РР кстати также

Bersenev
03.04.2011, 21:14
1.0.5.0

Скачай 1.0.5.37 из второго поста:spiteful:

Только программу, скин тебе не нужен

Pinin
03.04.2011, 21:37
Натюрлих, Маргарита Павловна! Спасибо - заработало!

Андрей, если будет время и желание - с ProgScriptNew поможешь разобраться?

Bersenev
03.04.2011, 21:40
Андрей, если будет время и желание - с ProgScriptNew поможешь разобраться?

Какие проблемы, спрашивай, только для начала здесь почитай http://www.pccar.ru/showpost.php?p=170032&postcount=8

Pinin
03.04.2011, 22:18
Этот пост - в закладках уже неделю... Вопросы вот какие: при размерах экрана 1024х768 требуемая область на веб-странице частично находится за пределами окна.

С X Y W H все понятно, а как быть в этом случае с DL DT DR DB? Судя по приведенному там рисунку, они отсчитываются от "рамочки вокруг приложения..."
Что это за рамочка, обычно не более нескольких пикселов? По тексту вроде это ни разу ни видимая область, ни рамка браузера в том конкретном случае, ни что-то еще...

Да и не очень понятно, реально ли вообще выдрать этот блок на главный скин? Напомню на всякий случай, что чтобы не путаться с урлами, я изначально планировал выдирать этот блок из FF, где именно эта страница будет стартовой, в отличии от IE, где стартовой должна была быть страница веб-интерфейса регистратора. Последнее, впрочем, не понадобилось...

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

Bersenev
03.04.2011, 22:29
Этот пост - в закладках уже неделю... Вопросы вот какие: при размерах экрана 1024х768 требуемая область на веб-странице частично находится за пределами окна.

С X Y W H все понятно, а как быть в этом случае с DL DT DR DB? Судя по приведенному там рисунку, они отсчитываются от "рамочки вокруг приложения..."
Что это за рамочка, обычно не более нескольких пикселов? По тексту вроде это ни разу ни видимая область, ни рамка браузера в том конкретном случае, ни что-то еще...

Да и не очень понятно, реально ли вообще выдрать этот блок на главный скин? Напомню на всякий случай, что чтобы не путаться с урлами, я изначально планировал выдирать этот блок из FF, где именно эта страница будет стартовой, в отличии от IE, где стартовой должна была быть страница веб-интерфейса регистратора. Последнее, впрочем, не понадобилось...

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

Ничего не понял, но и не надо. Лучше скажи, что конкретно и на каком экране хочешь увидеть

= Nicki =
03.04.2011, 22:31
Словом, непонятно как быть с невлезанием требуемого блока на исходную страницу, возможностью вывода его именно на фронт в качестве индикатора что-ли, да и обновлять инфу его тоже пока не очень понятно как.

т.е. я правильно понял ты хочешь впихнуть окно скажем (размер условный для понимания) 1200х800 в экран с физическим разрешением 1024х768? Если так то скрипт не умеет маштабировать он тока обрезает лишнее. Может тогда стоит поиграть с маштабом в FF? Либо часть экрана тупо не в лезет

Pinin
03.04.2011, 22:38
Не, не, не - все гораздо проще: я же приводил планируемый вид здесь (http://www.pccar.ru/showpost.php?p=179494&postcount=10). Блок, который надо выдрать отсюда (http://www.intellicast.com/Local/Weather.aspx?location=RSXX0069) (прогноз погоды на 10 дней) имеет размер меньше, чем разрешение монитора (664х304). Просто он на странице расположен так, что для того, чтобы он полностью отобразился, необходима прокрутка окна.

Т.е. X Y W H - 334 212 664 304...

Bersenev
03.04.2011, 22:53
Запусти FF с нужной станицей, из командной строки без икара запусти скрипт с такими параметрами, а дальше меняя параметр 630, подбери что бы попадала нужная часть, только не забывай перед новым запуском скрипта, закрывать в трее старый.

ProgScriptNew.exe Intellicast 0 0 660 290 20 630 600 800

правда у меня получилась область 660х290, а не как твоя 664х304

Pinin
03.04.2011, 23:12
Спасибо, попробую поиграться завтра, о результатах отпишусь.

Pinin
04.04.2011, 08:53
Да, таки заработало! Спасибо! Осталось только подогнать положение блока на странице.

А какую команду надо прописать на кнопке, чтобы обновлять эту страницу? Если на кнопку "Погода" повесить запуск скрипта, то несколько нажатий на нее расплодит количество одновременно запущенных скриптов, что не есть хорошо. Значит, это должен быть какой-то SendKey, а запуск скрипта должен осуществляться один раз при старте системы?
И надо ли отводить в скине специальную область под этот блок (типа "А" или еще чего-то), или скрипт влепит его поверх всего и без этого?

Bersenev
04.04.2011, 09:20
Помоему эта старица обновляется сама автоматически, мне так показалось

Про запуск позже расскажу, из машины неудобно

А в скине в нужном месте вырежи область в скине, тег C

Pinin
04.04.2011, 10:01
Я вот чего подумал - видимо, скрипт имеет смысл запускать каждый раз, когда загружается menu.skin, и выгружать, когда идет переход на любой другой скин. Тогда и обновление инфы будет само собой происходить, и блок этот не будет путаться под ногами в других скинах. Хотя судя по последнему абзацу твоего поста, он поверх всех окон выводиться не будет и так...

P.S. Ну ты и маньяк - аж из машины форум не только мониторишь, но еще и отвечать умудряешься... Или у тебя личный водитель? ;)

Bersenev
04.04.2011, 10:36
Значит так

В ExecTBL делай такую команду

"OnSkinStart","Run;путь к FireFoxe||Run;Путь к скрипту|параметры скрипта"

А в файле menu.skin

Script,OnScreenStart,Activate;Intellicast

Всё. Если я ошибаюсь и станица сама не обновляется, то потом расскажу как сделать чтобы обновлялась, заодно узнаешь что такое таймеры в икаре

Bersenev
04.04.2011, 10:54
P.S. Ну ты и маньяк - аж из машины форум не только мониторишь, но еще и отвечать умудряешься... Или у тебя личный водитель? ;)

А зачем тогда комп в машине, музыку слушать и на визуализаци пялиться? Раз уж поставил, то надо пользоваться.

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

Pinin
04.04.2011, 11:47
Сенкс! Если удастся - попробую еще на работе, если не получится - значит, вечером отпишусь о результатах.

...музыку слушать и на визуализаци пялиться?

Ну, как бы это... за рулем-то в основном рулить приходится, если, конечно, в пробках не стоишь по часу. Но по-любому - мое почтение. ;)

Pinin
04.04.2011, 14:35
В ExecTBL делай такую команду

"OnSkinStart","Run;путь к FireFoxe||Run;Путь к скрипту|параметры скрипта"

Run;путь к FireFoxe, наверное, лишнее - при таких раскладах вместе с Икаром запускается еще один (пустой) экземпляр ФФ. Тут, наверное, уместнее ACTIVATE (надо будет попробовать)...

Ведь для того, чтобы скрипт сработал, нужно, чтобы именно эта страница уже была открыта браузером. При чем именно эта - когда ФФ свернут в трей с кучей открытых страниц (и последняя активная - не та, что нужно) - скрипт не работает так, как должен. И даже при том, что страница та - все равно приходится пинком ее выгонять во фронт: пока не кликнешь по значку ФФ в трее, блок не вылезает.

В остальном - все пучком: блок вписывается в требуемое место, а вот на счет обновления инфы пока ничего сказать не могу...

Попробовал "OnSkinStart","Activate;Intellicast||Run;Путь к скрипту|параметры скрипта" - не сработало...

Bersenev
04.04.2011, 14:48
Run;путь к FireFoxe, наверное, лишнее - при таких раскладах вместе с Икаром запускается еще один (пустой) экземпляр ФФ. Тут, наверное, уместнее ACTIVATE (надо будет попробовать)...

Ведь для того, чтобы скрипт сработал, нужно, чтобы именно эта страница уже была открыта браузером. При чем именно эта - когда ФФ свернут в трей с кучей открытых страниц (и последняя активная - не та, что нужно) - скрипт не работает так, как должен. И даже при том, что страница та - все равно приходится пинком ее выгонять во фронт: пока не кликнешь по значку ФФ в трее, блок не вылезает.

В остальном - все пучком: блок вписывается в требуемое место, а вот на счет обновления инфы пока ничего сказать не могу...

Если ты собираешься запускать FireFox до икара, то разумеется лишняя. Я рассчитывал что всё запускать будет икар, а данная страница будет домашней в FireFox, в результате всегда будет висеть нужная часть страницы на экране.

Давай что у тебя получилось, посмотрю что можно почему FF не разворачивается сразу.

Хотя почему ты говоришь в трее ? То что находиться в трее команда Activate может и не найти.

Pinin
04.04.2011, 17:01
Дело в том, что даже на рабочей машине при такой схеме (когда Икар запускает все сам) у меня получается, что окно браузера перекрывает фронт и висит поверх него, мучительно загружая стартовую страницу (которая всего-то Яндекс). Тут, впрочем, надо иметь в виду, что нет у меня в данном случае через билайновский свисток. Хотя даже загрузив страницу, ФФ не сворачивается...

Насчет Activate - я имел в виду из свернутого состояния, конечно. На карписе это использую для управления РД: прога для Арду свернута и поднимается во фронт именно этой командой. А тут чего-то не канает.

В архиве - *.skin и ExecTBL.ini

Pinin
04.04.2011, 20:45
Кратенький отчет: поставил на боевое железо.

FF ведет себя так же, как и на тестовом - из таск-бара сам не поднимается, достается оттуда пинком. Будучи же развернутым перед запуском Икара - вписывается в скин, но...

На область приложения (А) - плюет, если кликнуть по любой (кроме кнопок) точке скина - прячется за него. С размерами - вообще улет: как я и предполагал, умолчально не убираясь в страницу из-за необходимости прокрутки, на скине блок отображается... сикось-накось - часть верхнего баннера, часть собственно блока (где-то 50 на 50).
С параметрами скрипта игрался всяко прямо на месте, компромиссного результата добился с такими: 334 200 660 330 20 460 600 360. При этом приходится ФФ запускать до Икара и вручную пролистывать тот обрезок страницы, чтобы на нем было минимум шлака и максимум инфы.

Еще один не очень приятный косяк - запущенные приложения по выходу из своего скина не завершают работу: висит и прога прошивки сигналки, и веб-морда регистратора. С последней - это совсем нехорошо: трафик там валит недетский. IE отрубается только при закрытии Икара.

Вот как-то так пока...

= Nicki =
04.04.2011, 20:55
а если маштаб изменить так чтобы все помещалось на странице?

Pinin
04.04.2011, 21:02
Да там и без того мелко очень все получается: все-таки на 9 дюймах 1024 на 768 уже мелковато, а меньше - вебморда не влазит.

Да нет, если юзать ждущий/спящий и не перегружаться по сто раз - это не критично: раз настроил и все.

Bersenev
04.04.2011, 21:40
Всё прекрасно работает, если правильно делать

Я разве говорил, что в menu.skin надо тег A использовать? По моему речь шла о теге С. http://www.pccar.ru/showpost.php?p=179621&postcount=38

C,345,218,660,290

В ExecTBL такая команда

"ONSKINSTART","Run;$skinpath$ProgScriptNew.exe|Intellicast 345 218 660 290 20 630 600 800||RUN;C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
Твоя страница установлена в FF домашней и в настройках FF выбрано запускать с домашней страницы.

И всё работает

И ещё удали в ExecTBL все команды кроме этой, они тебе не нужны

Bersenev
04.04.2011, 22:02
Еще один не очень приятный косяк - запущенные приложения по выходу из своего скина не завершают работу: висит и прога прошивки сигналки, и веб-морда регистратора. С последней - это совсем нехорошо: трафик там валит недетский. IE отрубается только при закрытии Икара.


Речь о необходимости обязательного закрытия программ не шла. Ни икар ни РР не закрывают программы прописанные в скине по команде EXIT , для этого есть команда CLOSE.

И если важно обязательно закрывать регистратор, то наверно внутренний браузер не подойдёт, он закрывается только при закрытии икара, хотя можно попробовать закрыть его по CLOSE или CloseWindow, но я не разу так не пробовал, результата не знаю

Pinin
04.04.2011, 22:26
Да, с "C" и "A" облажался, есть такое дело.

Про "ONSKINSTART","Run;$skinpath$ProgScriptNew.exe|Intellicast 345 218 660 290 20 630 600 800||RUN;C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
ну не правильно это: абсолютный путь тут нужен (я не стал выдирать папку со скриптами из родного скина, и его оставил на всякий случай). Про "||RUN;C:\Program Files (x86)\Mozilla Firefox\firefox.exe" - не суть: можно и так, можно и в атозагрузку ФФ и хай висит себе. Тем более что все равно подкручивать страницу по-любому приходится. Вот это, действительно, неаккуратненько.

Пробовал я CLOSE - не работает... А речь, кстати, о многом еще не шла - просто проблемы разгребаю постепенно. ;)

Bersenev
04.04.2011, 22:49
Ты не стал, а я скопировал скрипт в папку скина, чтобы с путями не париться.

В FF ничего не подкручиваю, нужная часть сразу встаёт на своё место. Я просто запускаю икар и получаю картинку как на скриншоте.

Какие конкретно действия делаешь на странице, чтобы попала нужная область? Размер шапки в FF у нас может быть разный, поэтому нужно играть с параметром 630, если твая шапка в FF шире то увеличивать, а если уже чем у меня, то уменьшать.

для того чтобы стало немного понятнее расскажу про скрипт, если не запутаю окончательно.

в скине в теге C задаёшь параметры области, которую надо вырезать 345,218,660,290

Эти же параметры задаёшь в скрипте первыми, именно такой прямоугольник останется потом от окна.

дальше задаём параметры 20 - расстояние от левой стороны области до левой границы окна, 630 - расстояние от верхней стороны области, до верха окна, 600 тоже самое справа и 800 тоже самое снизу.

дальше скрипт разворачивает окно FF до следующих размеров ширина окна 660 + 20 + 600 = 1280 и высота окна 290 + 630 + 800 = 1720. В результате размер окна становиться таким, что вся страница помещается на ней целиком, без полос прокрутки.

А верхний левый угол окна будет задан как Х = 345 - 20 = 325, У = 218 - 630 = -412, в результате нужная нам область окажется в нужном нам месте.

Поэтому что тебе приходиться подкручивать мне не ясно

Pinin
04.04.2011, 23:23
Ты на каком разрешении/диагонали экспериментируешь? Дело в том, что выставляя на большом (24`) монике разрешение тача (1024х768) я размеры вырезаемого блока и его координаты получал иные, чем при том же разрешении на 9`... Хз, почему, но факт. Шапка у FF умолчальная - инсталлировал его на тот комп только что безо всяких плагинов.

в скине в теге C задаёшь параметры области, которую надо вырезать 345,218,660,290

Эти же параметры задаёшь в скрипте первыми, именно такой прямоугольник останется потом от окна.

дальше задаём параметры 20 - расстояние от левой стороны области до левой границы окна

До этого момента так и есть. Дальнейшие разбежки в цифрах ( у меня после 20 идет 460 600 360) обусловлены отчасти тем, что я в скине немного переместил размер/положение области С, но это - гомеопатия: отсутствие необходимости прокрутки у тебя это не объясняет. Отрезаемую область снизу менял от -300 до +600 - результата не заметил. :dntknw: Хотя, может быть ключевое слово - не заметил...

Забил сейчас в ExecTBL.ini твои цифры: ФФ уехал в правый верхний угол экрана, и даже прокруткой блок на место не встает. К сожалению, скриншот нечем сделать - даже клавы нет подходящей...

Ладно - ну его на фиг: не такая уж проблема. Добиться с твоей помощью удалось гораздо большего. Спасибо!

Если не возражаешь - новую порцию вопросов оставлю на завтра. :blush:

Pinin
05.04.2011, 07:52
Выяснилось - интелекастовская инфа не обновляется сама. Пришла пора поговорить о таймерах в Икаре?

Bersenev
05.04.2011, 08:55
Я думаю, что специфические икаровские таймеры тебе в данном варианте не нужны. Правильнее наверно в main.skin добавить таймер TMR,60 , а в ExecTBL добавить команду "Timer","Activate;Intellicast||SendKey;^r",main.skin

Но это в идеальной ситуации, а в текущий момент команда SendKey в икаре работает неправильно, поэтому лучше сделать так "Timer","RUN;$Skinpath$FFRefreshScript.exe",main.skin

А FFRefreshScript.exe сделать на AutoIt, там всего две строчки активировать нужное окно и отправить ему комбинацию клавиш, сейчас подсказки под рукой нет, не помню точный синтаксис, если будет нужно позже выложу

Pinin
05.04.2011, 10:03
Ок, это не срочно. Но был бы признателен...

Слушай, попутно еще один вопрос на будущее: у меня почтовиком стоит The bat, и задача его на том компе - просто извещать о приходе почты, ну и как максимум - просматривать ее. Встроенными средствами это все легко решается - тапом по бегущей строке пришедших сообщений, но единственное неудобство - закрытие окон пришедших писем (попасть в крестик закрытия пальцем тяжеловато). Есть какая-то команда, позволяющая закрыть активное окно?

Bersenev
05.04.2011, 11:26
Ок, это не срочно. Но был бы признателен...


В архиве скрипт. В ExecTBL на таймер вешаешь это

"Timer","Run;$skinpath$WindowSendKey|"Intellicast" "^к""

Вообще то надо отправлять ^r , но с отправкой горячих клавиш всегда так вместо английских иногда приходиться русские отправлять, только так работает. ^к - ЭТО РУССКАЯ БУКВА. Но у тебя может заработать и английская.


Слушай, попутно еще один вопрос на будущее: у меня почтовиком стоит The bat, и задача его на том компе - просто извещать о приходе почты, ну и как максимум - просматривать ее. Встроенными средствами это все легко решается - тапом по бегущей строке пришедших сообщений, но единственное неудобство - закрытие окон пришедших писем (попасть в крестик закрытия пальцем тяжеловато). Есть какая-то команда, позволяющая закрыть активное окно?

Есть команда CloseWindow;Имя окна

Pinin
05.04.2011, 11:50
Эх, только собрался отчитаться про CloseWindow - приложения ей удается закрывать (проверено на программаторе сигналки). С IE, правда не все так благолепно - с ним не прокатило, но попробую еще поиграться, ибо трафик сетку нагружает, и это не есть хорошо.

Таймеры постараюсь проверить сегодня. А вот интересно, может быть SendKey-ем заслать команду IE, чтобы тормознуть коннект? Да, и еще - насколько часто скрипт будет ломиться за погодой?

Bersenev
05.04.2011, 12:30
Эх, только собрался отчитаться про CloseWindow - приложения ей удается закрывать (проверено на программаторе сигналки). С IE, правда не все так благолепно - с ним не прокатило, но попробую еще поиграться, ибо трафик сетку нагружает, и это не есть хорошо.

А какую именно команду для IE пробовал?

Таймеры постараюсь проверить сегодня. А вот интересно, может быть SendKey-ем заслать команду IE, чтобы тормознуть коннект? Да, и еще - насколько часто скрипт будет ломиться за погодой?

Скрипт никуда ломиться не будет, он просто горячую клавишу FF отправляет и всё. А вот частота вызова этого скрипта задаётся здесь в секундах TMR,60

Pinin
05.04.2011, 14:21
CloseWindow;!TWebBrowserForm, еще какие-то вариации из CLOSE, EXIT и т.п... Вешал их на кнопку overlay, но безуспешно пока.

А вот частота вызова этого скрипта задаётся здесь в секундах TMR,60

Блин, просматривал же все предыдущие посты... В main.skin (т.е. в menu.skin, видимо) это задается!
Наверное, повешу вызов этого скрипта на кнопку погоды, чтобы вручную обновлять: не так уж часто там инфа обновляется, а раз в день нажать на кнопку - не в падлу. ;)

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

Bersenev
05.04.2011, 14:57
Сейчас внутренний браузер закрыть нельзя, всё что могу предложить или вызывать IE также как FF или переходить на какую-нибудь другую страницу при выходе из экраны камеры

Pinin
05.04.2011, 15:28
Да, на счет перехода - это мысль интересная. Стоит обдумать.

Кстати, предыдущий пост обновил, тоже есть над чем покумекать...

Bersenev
05.04.2011, 15:33
О засада! - подарочек от интеликаста. Правда, такая шняга возникает, если обновлять после отключения от нета на какое-то время (при постоянном, без обрывов связи такого быть вроде бы не должно).

Это только скриптом можно вылечить, в ProgScriptNew добавить поиск такого окна и после нахождения нажать нужную кнопки

Bersenev
05.04.2011, 15:36
Да, на счет перехода - это мысль интересная. Стоит обдумать.



Для этого в скин камер вставь такую строку

Script,OnScreenEnd,WEBURL;любой адрес

Pinin
05.04.2011, 16:04
в ProgScriptNew добавить поиск такого окна и после нахождения нажать нужную кнопки

Это придется покурить.

Script,OnScreenEnd,WEBURL;любой адрес

На кнопку выхода, полагаю...

Ок, отчет вечером.

Bersenev
05.04.2011, 16:30
На кнопку выхода, полагаю...


Нет. Просто добавить такую строчку в WBROWSER.SKIN

Pinin
05.04.2011, 19:41
Да, сей метод работает прекрасно. Поток видео удалось оборвать и без закрытия браузера.

С Интелликастом все запущенней, чем я предполагал: каждое обновление этой страницы идет с варнингом. Но как выяснилось - что одно нажатие на кнопку "Погода", что два (на погоду и варнинг) - особого труда не доставляют. Забавно наблюдать, как в процессе обновления страницы сначала из-под пятницы лезет суббота, а потом блок четко позиционируется в скине как бы сам собой.

Конечно, надо бы еще заботварить таймер на 1 раз в 24 часа хотя бы, но тут надо курить скрипты, а с этим у меня не очень... Попробую этим на досуге заняться: получится - хорошо, а не получится - так хоть согреюсь. :D

Честно сказать - стою перед соблазном: чертовски нравится то, что получилось, а пара мелких косячков так и шепчут - "мы ж мелкие - забей!" Не знаю, не знаю...

Андрей, спасибо громадное! Точку я в этом проекте для себя еще не поставил, задумки кое-какие интересные есть в кармане, но, думаю, пока поток вопросов от меня на какое-то время должен иссякнуть.
Удачи во взращивании вашей делянки, если сам чем-нибудь смогу быть полезен - тока свистни!

Bersenev
05.04.2011, 20:23
Не так не пойдёт!

Осталось то одну цифурку поменять, чтобы таймер один раз в сутки срабатывал, и чуть скрипт поправить, чтобы окно автоматом закрывал, делов на полчаса. А ты думаешь делать или нет.

в TMR,60 замении 60 на 3600, и обновляться будет раз в час, а 3600х24 будет тебе раз в сутки

А вот со скриптом сложнее, но не смертельно. Я могу вставить туда нужное тебе, но тебе придётся кое что поправить и скомпилировать скрипт в exe

Pinin
05.04.2011, 21:17
Хм, ну про циферьки-то это я догнал (вот он - риск задавания простых иной раз вопросов: совсем уж дураком можно прослыть :) ).

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

Я на эти скрипты давно уже глаз положил (хоцца освоить - да то понос, то золотуха...) Если я и в этот раз соблазну поддамся - результат-то, конечно, будет, но...
Процесс - это жизнь, результат - это смерть. Зачем же гнаться за результатом?

Pinin
06.04.2011, 20:06
Ну, что ж - день, проведенный на http://www.script-coding.com/ не пропал даром: слабал я-таки экзешник, гасящий окошко подтверждения.:yes4:
Не бог весть что, если иметь в виду сам скриптец, но зато попутно прояснил для себя азы и механику процесса.
Обновление сделал и автоматом (раз в сутки), и вручную. Калькулятор пришлось прикрутить из скина CFStyle - нарыл замечательную прожку The Calc (http://thecalc.narod.ru/screenshots.html), но к сожалению, влегкую она не вписалась в скин, а трахаться с ней только лишь из спортивного интереса - не, только по-любви...


Таперя вообще песня - все работает так, как хотел, и даже сверх того. По железу еще остались задумки, но с фронтом покуда все - вот прикручу Ардуину, тогда, наверное, тема всплывет еще разок...

P.S. в аттаче скрипт, который убивает окошко подтверждения на Ителликасте. По началу привязки к этой странице в нем не было (и он таки работал, но при этом столь же безапелляционно гасил любое подобное окно), но обнаружив, что при копировании файлов диалог тоже пропал - решил переделать: мало ли...

Bersenev
06.04.2011, 20:31
Поздравляю

Pinin
06.04.2011, 21:16
Благодарю! И за поздравления, и за помощь! ;)

LSDance
27.02.2012, 14:15
Всем привет!
Подскажите, пожалуйста, можно ли немного переделать скин и привести верхнее меню к такому виду:

http://s005.radikal.ru/i210/1202/a4/a58a3ad886b1.jpg (http://www.radikal.ru)

Очень режет глаза оригинальный скин, люблю минимал, а он перегружен лишними рюшечками.

Заранее спсаибо!

Bersenev
27.02.2012, 14:54
Всем привет!
Подскажите, пожалуйста, можно ли немного переделать скин и привести верхнее меню к такому виду:

Можно, но править придётся файлы 1_cf_00.txt, 1_cf_10.txt, 1_cf_20.txt, 1_cf_30.txt, 1_cf_40.txt, 1_cf_50.txt, 1_cf_60.txt и 1_cf_70.txt

то есть для каждого медиа источника. Если только для музыки, то 1_cf_00.txt

Удали строку INC,cf_labelshow.txt и пропадут верхние показатели, а дальше просто меняй положения и размеры лейблов, изображений и индикаторов


Очень режет глаза оригинальный скин, люблю минимал, а он перегружен лишними рюшечками.


Ну здесь каждому своё

LSDance
27.02.2012, 15:09
Можно, но править придётся файлы 1_cf_00.txt, 1_cf_10.txt, 1_cf_20.txt, 1_cf_30.txt, 1_cf_40.txt, 1_cf_50.txt, 1_cf_60.txt и 1_cf_70.txt

то есть для каждого медиа источника. Если только для музыки, то 1_cf_00.txt

Удали строку INC,cf_labelshow.txt и пропадут верхние показатели, а дальше просто меняй положения и размеры лейблов, изображений и индикаторов




Ну здесь каждому своё

Про вкус и цвет согласен.
Спасибо за оперативный ответ, пойду разбираться =)