Пользовательские команды и кнопки с SAVETABS

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Skif_off писал(а):1 и 2 работают
Ура! Значит и первый код (без кавычек) тоже.
Skif_off писал(а):работает (точнее - работает только если путь абсолютный)
Эта же команда (с абсолютным путём) работает и через командную строку TC, причём и без параметра %A в пользовательской команде, и при его наличии, и с использованием %A1…%A9.
Skif_off
Сообщения: 1255
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Avada писал(а):Вправе ли мы ожидать от такой произвольной юзер-команды подхвата параметров, указанных не в ней самой, а уже в кнопке, в поле "Команда"?
Не знаю, но если ставить шире: команда и параметры будут развёрнуты в одну строку, в любом из трёх случаев она будет в итоге выглядеть так

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

savetabs C:\TC\Tabs\2.tab
Но в третьем работать не хочет. Я эту логику принял, но не понял смысл такой избирательности.
sa писал(а):Эта же команда (с абсолютным путём) работает и через командную строку TC
Возможно, ТС отправляет строку сам себе с WM_COPYDATA?
%A1…%A9 - это для тонких ценителей эротики, до первого пробела :) В данном случае.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Skif_off
Берём пример третьей кнопки, но с opentabs — там всё это нагляднее. Если в юзер-команде не указать параметр, а в кнопке указать только юзер-команду, мы получим диалог открытия файла, как и должно в этом случае быть. Но если мы — внимание! — в ту же кнопку затем подставим параметром путь к TAB-файлу, то получим "Файл не найден". То есть параметры в кнопке не игнорируются (иначе опять выполнялась бы "чистая" команда opentabs), TC честно пытается учесть всю строку, но такой синтаксис ему тут явно не по зубам.
Даже самая богатая фантазия
Не представит себе наши безобразия.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Avada писал(а):то получим "Файл не найден"
Сообщение в данном случае относится к исполняемому файлу с указанным до пробела именем, который TC не может найти.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

sa
Да, согласен. Что, впрочем, общей картины не меняет.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Skif_off
Сообщения: 1255
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Avada писал(а):TC честно пытается учесть всю строку, но такой синтаксис ему тут явно не по зубам
...и не очень понятно, почему Гислер предпочёл такую избирательность. Или не предусмотрел вроде как ожидаемого поведения, ведь по сути em-команда с параметром в итоге получается такой же, как и прямое использование внутренней.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Да чего тут обсуждать, запостить на оффорум надо, да и всё.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Skif_off писал(а):по сути em-команда с параметром в итоге получается такой же, как и прямое использование внутренней
А есть какой-то резон использовать в кнопке em-команду вместо внутренней (команды с параметром)?
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

sa писал(а):
Skif_off писал(а):по сути em-команда с параметром в итоге получается такой же, как и прямое использование внутренней
А есть какой-то резон использовать в кнопке em-команду вместо внутренней (команды с параметром)?
Если в целом, то команды с параметрами ведь нельзя использовать в связке (когда нужно несколько команд подряд выполнить).
Windows 11 | TC DreamLair eternal pre-α
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

sa
В общем виде — да, есть. Поскольку одна и та же заготовка юзер-команды, будучи единожды создана, может использоваться не только в кнопке, но и много где ещё. А отсюда вытекает и второй резон. Что при необходимости проще и быстрее править — один файл usercms.ini или неопределённое число разных файлов с такими же или почти такими же вхождениями той же команды в прямой форме записи, для главного меню, для кнопок, для меню "Пуск" и избранного? (Я порадовался своей предусмотрительности, например, когда несколько месяцев назад разносил в папке TC содержимое прежнего подкаталога Utils на собственно Utils и Addons со всеми вытекающими изменениями настроек).
Даже самая богатая фантазия
Не представит себе наши безобразия.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

LonerD писал(а):команды с параметрами ведь нельзя использовать в связке
Так и em-команда при таком раскладе будет с параметром…
Avada писал(а):править — один файл usercmd.ini
А что здесь

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

[em_SaveTabs] 
cmd=savetabs
править?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

LonerD писал(а):команды с параметрами ведь нельзя использовать в связке
Старые — нет, а некоторые новые — можно. Даже в новой английской справке специально ещё один пример связки добавлен:
cm_SelectAll,cm_wait 1000,cm_Copy
sa
Во-первых, я кажется, ясно выше написал "в общем виде". Во-вторых, и здесь есть что править. Причём как раз здесь, с шестью видами формата самой команды — особенно. Например, заменить savetabs на savetabs2.
Даже самая богатая фантазия
Не представит себе наши безобразия.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Avada писал(а):Например, заменить savetabs на savetabs2
Согласен, кому-то это может оказаться полезным. По сути это замена одной команды на другую без замены имени пользовательской команды, с тем же успехом можно сюда и APPENDTABS и OPENTABS вписывать (только команду тогда логичнее будет назвать em_Tabs).
Ответить