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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Road Runner (http://pccar.ru/forumdisplay.php?f=35)
-   -   Команды "SETVAR"/"BYVAR" в RR (http://pccar.ru/showthread.php?t=9678)

Pinin 08.09.2009 16:02

Команды "SETVAR"/"BYVAR" в RR
 
Собственно, трабл-то вот в чем: есть прога, запускаемая из основного скина вполне себе стандартной конструкцией:

PHP код:

"LOAD;System-Manager.skin;System-Manager||RUN;c:\Program Files\System-Manager\System-Manager.exe","" 

Беда в том, что если потом просто перейти из ее скина куда-нибудь еще, при последующем обращении к ней (в строгом соответствии с приведенной выше конструкцией), запускается второй экземпляр проги. При том, что многие другие (тот же Озик или СитиГид) этим не страдают. В случае же с SM надо сначала загасить его штатными средствами, а уж потом покидать скин...

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

Интересной представляется конструкция из сабжевых команд:

Цитата:

"BYVAR" - эта команда позволяет выполнять различные команды, основанные на значении глобальной переменной. Значение переменной начинается с 0 (ноля).
Команды разделяются с помощью << (вместо >>, используемого кнопкой переключателя (switchbutton)). Пример: "SETVAR;GPSCHOICE;1"
Теперь Вы можете выполнить команду, основанную на используемой переменной:
"BYVAR;GPSCHOICE;DESTINATOR<
Т.е. отслеживаем состояние проги (запущена/не запущена), и в соответствии с этим на кнопку ее вызова из основного скина вешаем два варианта действий: либо запустить, либо активизировать... Логика-то, вроде бы, очевидна - но вот с грамотной ее реализацией в виде конкретного кода что-то не заладилось...:dntknw:

Может, кто-нибудь уже разобрался с этим?

ashu 08.09.2009 16:19

А почему бы тебе не запускать его так?

"LOAD;System-Manager.skin;System-Manager;c:\Program Files\System-Manager\System-Manager.exe;System-Manager"

Такая конструкция у меня отрабатывает всегда на ура :)

ashu 08.09.2009 16:24

По теме ветки.. Вот так у меня реализован запуск/останов караоке-проигрывателя одной кнопкой:

В ExecTBL.ini:
Код:

"StartKaraoke","CLOSEWINDOW;foobar2000||CLOSEWINDOW;The KMPlayer||RUN;C:\Program Files\vanBasco's Karaoke Player\vmidi.exe||SETVAR;KARAOKE;1||SETVAR;KMP;0||PAUSE||CLOSEWINDOW;The KMPlayer"
"StopKaraoke","RUNQ;taskkill|/IM vmidi.exe||SETVAR;KARAOKE;0||RUNQ;taskkill|/IM vmidi.exe"


На кнопке:
Код:

"BYVAR;KARAOKE;StartKaraoke<

Pinin 08.09.2009 16:42

2 ashu

Попробовал конструкцию из первого твоего поста - те же грабли: при повторном заходе в скин запускается второй экземпляр проги...

Со второй сложнее - много незнакомых букв... :blush:

Закрываешь два окна - foobar2000 (не знаю, что это...) и KMPlayer - ну, может быть, так оно и надо...

Запускаешь караоке (vmidi.exe - это он, надо полагать) - понятно...

Устанавливаешь значения для караоке и KMPlayer - тоже понятно, хотя при чем тут плеер...

А вот дальше - пауза и опять закрываешь окно - так оно же и не открывалось?!


Со "StopKaraoke" вообще туман: почему "RUNQ;taskkill|/IM vmidi.exe дважды? И что за конструкция IM vmidi.exe, те. что означает IM?

eea_2M 08.09.2009 16:46

Цитата:

Сообщение от Pinin (Сообщение 110004)
ну вот нужен мне файл-менеджер, причем открытый на конкретной папке

А зачем, если не секрет? Я просто делал это для правильного задания Current Directory для кривых программ работающих "от текущего каталога", но потом нашел более простой способ.

Pinin 08.09.2009 16:52

2 eea_2M

Темповая папка CamGrabber`а...

Прога в стадии непрерывного совершенствования, но пока еще нуждается в пристальном внимании ;)

ashu 08.09.2009 17:10

Цитата:

Сообщение от Pinin (Сообщение 110010)
Попробовал конструкцию из первого твоего поста - те же грабли: при повторном заходе в скин запускается второй экземпляр проги...

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

Цитата:

Сообщение от Pinin (Сообщение 110010)
Закрываешь два окна - foobar2000 (не знаю, что это...) и KMPlayer - ну, может быть, так оно и надо...
Запускаешь караоке (vmidi.exe - это он, надо полагать) - понятно...
Устанавливаешь значения для караоке и KMPlayer - тоже понятно, хотя при чем тут плеер...
А вот дальше - пауза и опять закрываешь окно - так оно же и не открывалось?!

Со "StopKaraoke" вообще туман: почему "RUNQ;taskkill|/IM vmidi.exe дважды? И что за конструкция IM vmidi.exe, те. что означает IM?

Да, какие команды я там выполняю - не суть, это уже мой геморрой ;) Я ж тебе так, для примера привёл.
Важные команды - SETVAR;KARAOKE;0 и SETVAR;KARAOKE;1 - чтобы работала переключалка.

Pinin 08.09.2009 17:28

2 ashu

Проверил WinSpy`ем... Таки да, "System-Manager".

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

Ладно, спасибо - буду курить и пробовать ;)

eea_2M 08.09.2009 18:00

Цитата:

Сообщение от Pinin (Сообщение 110012)
2 eea_2M

Темповая папка CamGrabber`а...

Прога в стадии непрерывного совершенствования, но пока еще нуждается в пристальном внимании ;)

Ну а если я тебе слабаю мелкий консольный ЕХЕшник, который будет запускать файл указанный в параметре %1 с установкой ему CurrentDirectory как задано параметром %2, это решит проблему?
Например: starter.exe "C:\Programm Files\CamGrabber.exe" "C:\TEMP"

Pinin 08.09.2009 18:10

2 eea_2M

Спасибо за предложение - оценил, но тут дело в другом: процесс важнее результата ;)

В том смысле, что не столько мучает проблема, сколько доставляет удовольствие процесс ее решения. Что-то новое узнать, чему-то научиться. А когда готовое, да на блюдечке с голубой каемочкой, да еще и с ложечки и со слюнявчиком... Вот уж когда совсем стареньким стану...:blush:

Z@GR 08.09.2009 18:28

я прошу прощения, может не по теме ...
 
есть вопросик - может кто подскажет
в РР есть вроде команда типа фокус или как-то так
а как её применить?

суть проблемы такова, при запущенном BeOnRoad'е если уйти со сцены навигашки, а потом на неё вернуться теряется фокус окна навигашки
и вторая проблема - программа считает, что я хочу её закрыть (в кнопке выхода написана команда "EXIT") и при возврате в навигашку выкидывает боксик в котором написано что-то типа "вы действительно хотите выйти?" и 2 кнопки "да" и "нет".
Вот как0бы этого избежать бы?!?!? :dntknw:

ещё раз прошу прощения,что не по теме поста вопрос, просто не хотел плодить темы лишние ...

eea_2M 08.09.2009 18:29

Цитата:

Сообщение от Pinin (Сообщение 110026)
2 eea_2M
Спасибо за предложение - оценил, но тут дело в другом: процесс важнее результата ;)

Панимаю :good:

Pinin 08.09.2009 22:30

2 Z@GR

Уж не знаю, поможет ли, но:

По поводу "EXIT": м.б. воспользоваться
Цитата:

"SHOWWINDOW" - эта команда позволяет показать или скрыть любое работающее приложение, основываясь на заданном заголовке окна. Пример: "SHOWWINDOW;Notepad;False" (скрывает Блокнот, значение служит True в качестве альтернативы для отображения окна)
А вторым действием на кнопку выхода повесить вызов основного скина...

И вместо фокуса использовать:

Цитата:

"ACTIVATE"[АКТИВИРОВАТЬ]- эта команда позволяет сфокусировать/ сделать приложение активным, основываясь на заданном заголовке окна. Эта команда должна оказать Вам особую поддержку для активации любого открытого окна и немедленной отправки команд с клавиш быстрого доступа при помощи команды "SENDKEY". Пример: "ACTIVATE;Notepad"
А вот команды "фокус" что-то я не припомню...

Кстати, можно даже и без "SHOWWINDOW", наверное - просто на кнопку выхода из скина нави повесить вызов основного скина...

ashu 08.09.2009 23:23

Цитата:

Сообщение от Pinin (Сообщение 110055)
Кстати, можно даже и без "SHOWWINDOW", наверное - просто на кнопку выхода из скина нави повесить вызов основного скина...

Вполне достаточно вместо команды EXIT написать команду MAIN ;)

Pinin 09.09.2009 00:01

2 ashu

Так я это и имел в виду... :smile2:
У Z@GR`а-то проблема в том, что по возвращении фокус на нави теряется (хотя я слабо представляю, как это выглядит...)

Z@GR 09.09.2009 00:35

Цитата:

Сообщение от Pinin (Сообщение 110071)
2 ashu

Так я это и имел в виду... :smile2:
У Z@GR`а-то проблема в том, что по возвращении фокус на нави теряется (хотя я слабо представляю, как это выглядит...)

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

спасибо за советы! - я попробую и отпишусь потом как это заработает!

Pinin 09.09.2009 00:44

2 Z@GR

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

Что-то я подобного за своими не замечал... А может быть и действительно - не замечал? Надо будет присмотреться.

Ну ладно - успехов! Отпишись, чего получится ;)

Z@GR 09.09.2009 11:17

Цитата:

Сообщение от Pinin (Сообщение 110088)
2 Z@GR

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

действительно!
я пользуюсь ещё PGS и DESTINATOR - они так не тупят

ashu 09.09.2009 11:22

Я раньше запускал iGO так (пока не разобрался как его заставить работать и не в фокусе):
Код:

"LOAD;iGO.skin;iGO8;C:\iGO8\Igo_pc.exe;iGO8||ACTIVATE;iGO8"

Z@GR 04.03.2010 19:45

Цитата:

Сообщение от ashu (Сообщение 110128)
Я раньше запускал iGO так (пока не разобрался как его заставить работать и не в фокусе):
Код:

"LOAD;iGO.skin;iGO8;C:\iGO8\Igo_pc.exe;iGO8||ACTIVATE;iGO8"

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

PS а чтобы заставить работать iGO не в фокусе, что надо было сделать с ним?

Bersenev 04.03.2010 22:18

Цитата:

Сообщение от Z@GR (Сообщение 132755)
PS а чтобы заставить работать iGO не в фокусе, что надо было сделать с ним?

Здесь посмотри
http://www.compcar.ru/forum/showthre...=1243&page=333


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

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