Страница 2 из 3
Добавлено: Ср авг 17, 2016 11:43
sa
Avada
"Файл не найден!".
Добавлено: Ср авг 17, 2016 11:56
Avada
sa
Такое сообщение может выводиться в данном контексте только при попытке запуска команды savetabs либо вообще без параметра. либо с чем-то, что не воспринимается как корректный параметр. Тут надо с путём разбираться. В моём варианте записи проверялось? С простейшим параметром типа c:\my.tab проверялось?
Добавлено: Ср авг 17, 2016 12:03
sa
Avada писал(а):c:\my.tab
Не помогает.
P.S. Позже попробую кнопку на Win 7.
Добавлено: Ср авг 17, 2016 12:06
Avada
sa
Тогда я пас, больше идей не имею. Ну ещё для порядка версию и битность системы и TC уточнить надо, пожалуй.
Добавлено: Ср авг 17, 2016 14:18
sa
Поведение одинаковое в TC 9.0b9, что на XP, что на Win 7(32).
Пробовал ещё кнопку
Код: Выделить всё
TOTALCMD#BAR#DATA
em_SEL *.txt
wcmicons.dll,39
Выделить TXT-файлы
-1
с пользовательской командой
Тоже не работает. При вызове из командной строки файлы выделяются. В TC 8.52a поведение для последней команды аналогичное.
Добавлено: Чт авг 18, 2016 08:51
sa
Flasher писал(а):-del-
Не понял, у самого-то обсуждавшиеся здесь кнопки (для em-команд с %A в параметрах) работают?
Добавлено: Чт авг 18, 2016 09:25
Avada
sa
Приведённые выше коды кнопки/команды для выделения файлов, во-первых, не специфичны для TC 9, во-вторых, являют собой пример неправильного синтаксиса. Никакой маски в качестве параметра к имени em-команды, которая сама вызывает "пустую" параметризованную команду, в кнопке добавляться не может. При нормальном указании той же маски в самой юзер-команде как параметра команды SELECTFILES кнопка, разумеется, прекрасно работает. Предлагаю далее обсуждать здесь только команду SAVETABS, не отвлекаясь на посторонние вещи.
Впрочем, один момент этот пример позволил прояснить. Я первоначально за недосугом не отреагировал на второй из приведённых
здесь примеров. А там ровно тот же глюк: попытка использовать em-команду с несвойственным для кнопки синтаксисом. Потому и не работает.
Также я убедительно прошу любого, кто желает ссылаться на параметр %A, либо убедительно обосновать, наконец, его необходимость и применимость в данном конкретном случае — для кнопки, опосредованно запускающей команду с параметрами (вариант "кто-то когда-то написал, а я повторяю" аргументом не является), либо прекратить его упоминание как существенного условия воспроизведения проблемы. Дабы не вносить дополнительную путаницу в и без того не особо ясный вопрос.
Желающих продолжать выяснение повторно адресую к
своему посту. Создаём em-команду с произвольным именем на основе указанной команды с параметрами (с поправками на пути). Проверяем работу этой юзер-команды из командной строки TC. Затем создаём кнопку, где в поле "Команда" указано
только имя новой юзер-команды, а в поле "Параметры" —
ничего, и проверяем ещё раз. Без всякой отсебятины, ровно так, как написано.
Кроме того, поскольку обсуждение работы команд и кнопок с SAVETABS приобрело самодостаточный характер и уже никак не связано со cпецификой TC 9.0 beta 9, оно
выносится в самостоятельную тему.
Добавлено: Чт авг 18, 2016 11:06
sa
Avada писал(а):являют собой пример неправильного синтаксиса
Я с этого и начинал:
em_SaveTabs с параметром, по-моему, из кнопки вызвать невозможно, разве из командной строки.
после чего на мой уточняющий вопрос
второй код кнопки с вызовом приведённой ранее команды em_SaveTabs – работающий (при отсутствии кавычек)?
получил вполне однозначный ответ
Да, код работающий. А почему у кого-то возникла проблема, понятия не имею.
После чего и продолжилось выяснение…
Добавлено: Чт авг 18, 2016 11:44
Avada
sa
Значит, второпях я понял вопрос не совсем верно. Ранее данный ответ про "работающий код" конкретной записи аннулируется. Так что мы имеем теперь, с учётом сделанных поправок?
Добавлено: Чт авг 18, 2016 13:40
sa
Avada
По-прежнему не ясно, почему у Skif_off не работает и первый код кнопки (со снятыми кавычками). Вариант, что папка Tabs не существует, маловероятен…
Добавлено: Чт авг 18, 2016 13:56
Avada
sa
Я правильно понимаю, что реально не закрыта только проблема с его неработающим без кавычек первым кодом? (Который при этом ничем принципиально не отличается от работающего моего.) Или ещё что-то осталось неясным? Вроде бы нет...
Добавлено: Пт авг 19, 2016 06:54
Skif_off
Добрался попробовать, кнопки на панели инструментов:
[cut="кнопка 1"]
Код: Выделить всё
TOTALCMD#BAR#DATA
savetabs %COMMANDER_PATH%\Tabs\2.tab
wcmicons.dll
-1
[/cut]
[cut="кнопка 2"]
Код: Выделить всё
TOTALCMD#BAR#DATA
em_SaveTabs
wcmicons.dll
0
10000
в
usercmd.ini
Код: Выделить всё
[em_SaveTabs]
cmd=savetabs
param=%COMMANDER_PATH%\Tabs\2.tab
[/cut]
[cut="кнопка 3"]
Код: Выделить всё
TOTALCMD#BAR#DATA
em_SaveTabs %COMMANDER_PATH%\Tabs\2.tab
wcmicons.dll
0
10000
в
usercmd.ini
[/cut]
1 и 2 работают, 3 - не работает. И я не понимаю логику.
При этом с WM_COPYDATA команда, аналогичная кнопке 3:
работает (точнее - работает только если путь абсолютный).
И это, похоже, не баг, т.к. с
opentabs и
appendtabs всё вроде аналогично (и на 8.52а).
Добавлено: Пт авг 19, 2016 07:30
Avada
Skif_off
Третья кнопка и не должна работать. Логика проста, объясняю ещё раз. С одной стороны, пользовательская команда не воспринимает параметры, а её пытаются заставить сделать именно это вместо указания параметров в её собственных настройках. С другой стороны, opentabs и appendtabs можно запустить вообще без параметров, а savetabs — нет. Запуск команды без параметра невозможен, а параметр указан не там, где следует, отсюда и результат.
По каким правилам работают команды с WM_COPYDATA, я — в силу недостаточной квалификации — обсуждать не берусь.
Добавлено: Пт авг 19, 2016 08:46
Skif_off
Avada
Логика простая, согласен, понял, принял

Но получается с некоторым изъяном: команда принимает параметр, тогда какая разница, каким из штатных способов этот параметр ей передан?
К тому же, с WM_COPYDATA работает как раз третий вариант.
Добавлено: Пт авг 19, 2016 09:14
Avada
Skif_off
А это штатный способ передачи параметра данному типу команд?
Поставим на минуточку вопрос шире. Имеется пользовательская команда, созданная — в общем виде — на основе чего угодно (встроенной команды, команды с параметрами, другой пользовательской команды, цепочки команд разного вида, внешней программы с параметрами и без, скрипта/батника и пр.) Вправе ли мы ожидать от такой произвольной юзер-команды подхвата параметров, указанных не в ней самой, а уже в кнопке, в поле "Команда"?
Далее, возможно ли взаимодействие упоминавшегося выше стандартного параметра %A с записанными в юзер-командах параметризованными командами? Это тоже интересный вопрос, требующий выяснения.
И, разумеется, документированность работы в TC с WM_COPYDATA пока оставляет желать много лучшего.