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:


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

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