Страница 32 из 130

Добавлено: Пн авг 01, 2011 15:21
HA3APET
MVV
в RedirectSection пути полные прописаны, попробую убрать все перенаправления.
А ссылка на видео та же, только там видео другое.

Добавлено: Пн авг 01, 2011 16:21
MVV
Я не заметил на видео по этой ссылке чистого тотала (цвета, панели, всё не как у чистого - у чистого никаких настроек и панель по умолчанию, для чистоты надо запускать тотал с параметром /i=путь_к_новому_ини.ini). И вообще не припомню отличий этого видео от предыдущего.

А если в RedirectSection секции [Layout] прописаны полные пути, должно работать. Неплохо бы взглянуть на твой wincmd.ini (в личку).

Добавлено спустя 41 минуту:

Не пойму, в чём дело - в твоём INI общая редирекция не задана, и редирекция секции [Layout] - тоже. И у меня с ним всё работает, как и должно - сколько бы ни выполнял TCFS2 /ei tb1, панель не скрывается. RedirectSection у тебя используется только для секций [Colors] и [searches] - но они не имеют никакого отношения к делу.

Попробуй запустить TCFS2 с параметрами /ef "set_tcini(Layout, MyParam, 777)". По идее, в секции [Layout] тотального конфига должен добавиться параметр MyParam=777. Если не появился, значит, TCFS2 просто обращается к другому INI - можно будет выяснять, почему. А если добавился - тогда у меня вообще нет идей, почему tb1 скрывает панель, если имеет доступ к правильной секции.

Добавлено: Пн авг 01, 2011 16:51
HA3APET
MVV
Да, добавился MyParam=777.
Скорее всего конфликт.
На видео я нажимаю на "+" и появляется панель инструментов.
"+" - это
команда %COMMANDER_PATH%\Programm\ButtonBar\ButtonBar eXtended.exe
параметр em_bar5>1
где em_bar5 - это openbar %commander_path%\install\Bars\plus.bar

Если в моём полноэкранном режиме включить Панель инструментов, через меню Вид, то /ei tb1 отрабатывает как надо - панель не скрывается.

Добавлено: Пн авг 01, 2011 16:56
MVV
В таком случае попробуй в полноэкранном режиме включить панель и посмотреть, изменится ли параметр ButtonBar в секции [Layout]. Если он после включения панели остался 0, то неудивительно, что TCFS2 работает не так, как ожидалось - её же нагло дурят, убеждая, что панель выключена и нуждается во включении.

Ага!! При вызове OPENBAR тотал включает панель инструментов, но не записывает в конфиг, что включил её!

В таком случае рекомендую включать эту панель инструментов через TCFS2, используя параметры /ei tb1 /ef tem(em_bar5) - так вначале будет включаться панель инструментов, если она выключена, а потом будет вызываться OPENBAR.

Добавлено: Пн авг 01, 2011 17:08
HA3APET
MVV
Отлично, что разобрались!
Спасибо, попробую.

Добавлено: Пн авг 01, 2011 17:16
MVV
Кстати, как вариант, можно создать пользовательскую команду, которая будет запускать ButtonBar eXtended.exe с указанными выше параметрами, и вызывать её вместо em_bar5 функцией tem - на случай, если просто tem(em_bar5) будет плохо работать (я не особо знаю принципы работы ButtonBar eXtended). Тогда вначале панель включится, а потом вызовется ButtonBar eXtended, как и прежде.

Добавлено: Пн авг 01, 2011 17:38
HA3APET
всё получилось, спасибо!

Добавлено спустя 15 минут:

Познаю программу дальше
Такая вещь не должна работать?
/ef "set_tcini(Buttonbar, Buttonbar, "%%commander_path%%\install\Bars\plus.bar")"

Добавлено: Пн авг 01, 2011 17:42
MVV
Параметрами всех функций и команд (за исключением функции tem) могут являться только числа или числовые выражения. Строки не поддерживаются.

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

Добавлено: Пн авг 01, 2011 18:51
HA3APET
MVV
Ещё вопрос есть
/ef tem(em_bar)
как создать условие, что бы команда не выполнялась если, например скрыт заголовок окна или нет панели инструментов?

Добавлено: Пн авг 01, 2011 18:55
Flasher
/ef "tem(em_bar), test(hasCaption && hasButtonBar)"

Добавлено: Пн авг 01, 2011 19:18
HA3APET
Ага, через запятую значит, спасибо.

Код: Выделить всё

/ef "tem(em_bar1), test(hasCaption && hasButtonBar)"
А может и такое извращение программа может?
Не выполнять команду если открыта панель, которая не является панелью по-умолчанию.

Добавлено: Пн авг 01, 2011 19:29
Flasher
Исходя из этого
MVV писал(а):Строки не поддерживаются.
- нет, т.к. нет способа кроме как читать соотв. значение ключа в файле конфигурации. Я давно запрашивал поддержку чтения/записи строк, но мои вариации на предмет отождествления с тематикой программы автора не убедили.

Add: Хотя есть таки способ. Если всегда переключаться на определённый Bar с помощью TCFS2, то идею реализовать можно.
Создаётся партия em команд для каждого бара, включая дефолтный, потом стандартные строки в кнопках (%COMMANDER_PATH%\Default.bar) заменяются на:
TCFS2.exe /ef "tem(em_BBDefault) set_tcini(Buttonbar, N, 0)"
TCFS2.exe /ef "tem(em_BBProgram) set_tcini(Buttonbar, N, 1)"
TCFS2.exe /ef "tem(em_BBSystem) set_tcini(Buttonbar, N, 2)"
-/-
Тогда можно будет проверять по значениям новых ключей:
/ef "tem(em_bar1), test(tcini(Buttonbar, N, #))"

Добавлено: Пн авг 01, 2011 20:35
MVV
HA3APET писал(а):Ага, через запятую значит, спасибо.
Синтаксис команд после параметра /ef такой же, как и в строках секции [Items].
HA3APET писал(а):

Код: Выделить всё

/ef "tem(em_bar1), test(hasCaption && hasButtonBar)"
А может и такое извращение программа может?
Не выполнять команду если открыта панель, которая не является панелью по-умолчанию.
Flasher писал(а):Исходя из этого
MVV писал(а):Строки не поддерживаются.
- нет, т.к. нет способа кроме как читать соотв. значение ключа в файле конфигурации. Я давно запрашивал поддержку чтения/записи строк, но мои вариации на предмет отождествления с тематикой программы автора не убедили.
Добавление строк усложнит разбор команд. Например, сейчас из команд удаляются все пробелы без исключения. В строках это недопустимо. Также будет проблема с кавычками, которые сейчас ограничивают параметры командной строки, значит, для строк их использовать нельзя. Разве что использовать апострофы...

Что понимается под панелью по умолчанию? Панель инструментов? Тогда я вообще не знаю способа определить это - при смене панели инструментов тотал никуда не пишет информацию об этом, в конфиге остается запись о панели по умолчанию, так что тут вас не спасет и поддержка строк в параметрах TCFS2. Поэтому остается лишь способ, который указал Flasher - менять панели из TCFS2 и одновременно устанавливать какой-либо флаг. Добавлю, что в Autorun.cfg надо будет добавить очистку этого флага - т.к. при запуске тотал сам включает панель по умолчанию. И всё равно будут проблемы с выключением/включением панели - при этом тотал загружает панель по умолчанию, флаг сам не сбросится. Разве что добаить в команду tb1 запись нулевого флага. :)

Добавлено: Пн авг 01, 2011 20:50
Flasher
MVV писал(а):Добавлю, что в Autorun.cfg надо будет добавить очистку этого флага - т.к. при запуске тотал сам включает панель по умолчанию. И всё равно будут проблемы с выключением/включением панели - при этом тотал загружает панель по умолчанию, флаг сам не сбросится.
Сам хотел указать на autorun, но сперва было желание увидеть, устроит ли такой подход вообще. А прописать в cfg для верной работы достаточно будет:

Код: Выделить всё

ShellExec "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe" "/d=0 /ef set_tcini(Buttonbar,N,0)"

Добавлено: Пн авг 01, 2011 22:05
MVV
Боюсь, такая строка работать не будет: set_tcini(Buttonbar, N, 0) обязательно брать в кавычки, если писать с пробелами.
Правильнее параметр записать как '/d=0 /ef "set_tcini(Buttonbar, N, 0)"' (кажется, так записывается параметр, содержащий кавычки внутри). Или просто поудалять пробелы.

Кстати, /d=0 можно не указывать, проверяемых условий тут нет (тех, которые после запятой), поэтому задержка включаться не будет.