Пользовательские команды и кнопки с SAVETABS
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
sa
Такое сообщение может выводиться в данном контексте только при попытке запуска команды savetabs либо вообще без параметра. либо с чем-то, что не воспринимается как корректный параметр. Тут надо с путём разбираться. В моём варианте записи проверялось? С простейшим параметром типа c:\my.tab проверялось?
Такое сообщение может выводиться в данном контексте только при попытке запуска команды savetabs либо вообще без параметра. либо с чем-то, что не воспринимается как корректный параметр. Тут надо с путём разбираться. В моём варианте записи проверялось? С простейшим параметром типа c:\my.tab проверялось?
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Поведение одинаковое в TC 9.0b9, что на XP, что на Win 7(32).
Пробовал ещё кнопкус пользовательской командой
Тоже не работает. При вызове из командной строки файлы выделяются. В TC 8.52a поведение для последней команды аналогичное.
Пробовал ещё кнопку
Код: Выделить всё
TOTALCMD#BAR#DATA
em_SEL *.txt
wcmicons.dll,39
Выделить TXT-файлы
-1Код: Выделить всё
[em_SEL]
cmd=SELECTFILES
param=%Asa
Приведённые выше коды кнопки/команды для выделения файлов, во-первых, не специфичны для TC 9, во-вторых, являют собой пример неправильного синтаксиса. Никакой маски в качестве параметра к имени em-команды, которая сама вызывает "пустую" параметризованную команду, в кнопке добавляться не может. При нормальном указании той же маски в самой юзер-команде как параметра команды SELECTFILES кнопка, разумеется, прекрасно работает. Предлагаю далее обсуждать здесь только команду SAVETABS, не отвлекаясь на посторонние вещи.
Впрочем, один момент этот пример позволил прояснить. Я первоначально за недосугом не отреагировал на второй из приведённых здесь примеров. А там ровно тот же глюк: попытка использовать em-команду с несвойственным для кнопки синтаксисом. Потому и не работает.
Также я убедительно прошу любого, кто желает ссылаться на параметр %A, либо убедительно обосновать, наконец, его необходимость и применимость в данном конкретном случае — для кнопки, опосредованно запускающей команду с параметрами (вариант "кто-то когда-то написал, а я повторяю" аргументом не является), либо прекратить его упоминание как существенного условия воспроизведения проблемы. Дабы не вносить дополнительную путаницу в и без того не особо ясный вопрос.
Желающих продолжать выяснение повторно адресую к своему посту. Создаём em-команду с произвольным именем на основе указанной команды с параметрами (с поправками на пути). Проверяем работу этой юзер-команды из командной строки TC. Затем создаём кнопку, где в поле "Команда" указано только имя новой юзер-команды, а в поле "Параметры" — ничего, и проверяем ещё раз. Без всякой отсебятины, ровно так, как написано.
Кроме того, поскольку обсуждение работы команд и кнопок с SAVETABS приобрело самодостаточный характер и уже никак не связано со cпецификой TC 9.0 beta 9, оно выносится в самостоятельную тему.
Приведённые выше коды кнопки/команды для выделения файлов, во-первых, не специфичны для TC 9, во-вторых, являют собой пример неправильного синтаксиса. Никакой маски в качестве параметра к имени em-команды, которая сама вызывает "пустую" параметризованную команду, в кнопке добавляться не может. При нормальном указании той же маски в самой юзер-команде как параметра команды SELECTFILES кнопка, разумеется, прекрасно работает. Предлагаю далее обсуждать здесь только команду SAVETABS, не отвлекаясь на посторонние вещи.
Впрочем, один момент этот пример позволил прояснить. Я первоначально за недосугом не отреагировал на второй из приведённых здесь примеров. А там ровно тот же глюк: попытка использовать em-команду с несвойственным для кнопки синтаксисом. Потому и не работает.
Также я убедительно прошу любого, кто желает ссылаться на параметр %A, либо убедительно обосновать, наконец, его необходимость и применимость в данном конкретном случае — для кнопки, опосредованно запускающей команду с параметрами (вариант "кто-то когда-то написал, а я повторяю" аргументом не является), либо прекратить его упоминание как существенного условия воспроизведения проблемы. Дабы не вносить дополнительную путаницу в и без того не особо ясный вопрос.
Желающих продолжать выяснение повторно адресую к своему посту. Создаём em-команду с произвольным именем на основе указанной команды с параметрами (с поправками на пути). Проверяем работу этой юзер-команды из командной строки TC. Затем создаём кнопку, где в поле "Команда" указано только имя новой юзер-команды, а в поле "Параметры" — ничего, и проверяем ещё раз. Без всякой отсебятины, ровно так, как написано.
Кроме того, поскольку обсуждение работы команд и кнопок с SAVETABS приобрело самодостаточный характер и уже никак не связано со cпецификой TC 9.0 beta 9, оно выносится в самостоятельную тему.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Я с этого и начинал:Avada писал(а):являют собой пример неправильного синтаксиса
после чего на мой уточняющий вопросem_SaveTabs с параметром, по-моему, из кнопки вызвать невозможно, разве из командной строки.
получил вполне однозначный ответвторой код кнопки с вызовом приведённой ранее команды em_SaveTabs – работающий (при отсутствии кавычек)?
После чего и продолжилось выяснение…Да, код работающий. А почему у кого-то возникла проблема, понятия не имею.
Добрался попробовать, кнопки на панели инструментов:
[cut="кнопка 1"][/cut]
[cut="кнопка 2"]
в usercmd.ini
[/cut]
[cut="кнопка 3"]
в usercmd.ini
[/cut]
1 и 2 работают, 3 - не работает. И я не понимаю логику.
При этом с WM_COPYDATA команда, аналогичная кнопке 3:
работает (точнее - работает только если путь абсолютный).
И это, похоже, не баг, т.к. с opentabs и appendtabs всё вроде аналогично (и на 8.52а).
[cut="кнопка 1"]
Код: Выделить всё
TOTALCMD#BAR#DATA
savetabs %COMMANDER_PATH%\Tabs\2.tab
wcmicons.dll
-1[cut="кнопка 2"]
Код: Выделить всё
TOTALCMD#BAR#DATA
em_SaveTabs
wcmicons.dll
0
10000Код: Выделить всё
[em_SaveTabs]
cmd=savetabs
param=%COMMANDER_PATH%\Tabs\2.tab[cut="кнопка 3"]
Код: Выделить всё
TOTALCMD#BAR#DATA
em_SaveTabs %COMMANDER_PATH%\Tabs\2.tab
wcmicons.dll
0
10000Код: Выделить всё
[em_SaveTabs]
cmd=savetabs1 и 2 работают, 3 - не работает. И я не понимаю логику.
При этом с WM_COPYDATA команда, аналогичная кнопке 3:
Код: Выделить всё
em_SaveTabs %COMMANDER_PATH%\Tabs\2.tabИ это, похоже, не баг, т.к. с opentabs и appendtabs всё вроде аналогично (и на 8.52а).
Skif_off
Третья кнопка и не должна работать. Логика проста, объясняю ещё раз. С одной стороны, пользовательская команда не воспринимает параметры, а её пытаются заставить сделать именно это вместо указания параметров в её собственных настройках. С другой стороны, opentabs и appendtabs можно запустить вообще без параметров, а savetabs — нет. Запуск команды без параметра невозможен, а параметр указан не там, где следует, отсюда и результат.
По каким правилам работают команды с WM_COPYDATA, я — в силу недостаточной квалификации — обсуждать не берусь.
Третья кнопка и не должна работать. Логика проста, объясняю ещё раз. С одной стороны, пользовательская команда не воспринимает параметры, а её пытаются заставить сделать именно это вместо указания параметров в её собственных настройках. С другой стороны, opentabs и appendtabs можно запустить вообще без параметров, а savetabs — нет. Запуск команды без параметра невозможен, а параметр указан не там, где следует, отсюда и результат.
По каким правилам работают команды с WM_COPYDATA, я — в силу недостаточной квалификации — обсуждать не берусь.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Skif_off
А это штатный способ передачи параметра данному типу команд?
Поставим на минуточку вопрос шире. Имеется пользовательская команда, созданная — в общем виде — на основе чего угодно (встроенной команды, команды с параметрами, другой пользовательской команды, цепочки команд разного вида, внешней программы с параметрами и без, скрипта/батника и пр.) Вправе ли мы ожидать от такой произвольной юзер-команды подхвата параметров, указанных не в ней самой, а уже в кнопке, в поле "Команда"?
Далее, возможно ли взаимодействие упоминавшегося выше стандартного параметра %A с записанными в юзер-командах параметризованными командами? Это тоже интересный вопрос, требующий выяснения.
И, разумеется, документированность работы в TC с WM_COPYDATA пока оставляет желать много лучшего.
А это штатный способ передачи параметра данному типу команд?
Поставим на минуточку вопрос шире. Имеется пользовательская команда, созданная — в общем виде — на основе чего угодно (встроенной команды, команды с параметрами, другой пользовательской команды, цепочки команд разного вида, внешней программы с параметрами и без, скрипта/батника и пр.) Вправе ли мы ожидать от такой произвольной юзер-команды подхвата параметров, указанных не в ней самой, а уже в кнопке, в поле "Команда"?
Далее, возможно ли взаимодействие упоминавшегося выше стандартного параметра %A с записанными в юзер-командах параметризованными командами? Это тоже интересный вопрос, требующий выяснения.
И, разумеется, документированность работы в TC с WM_COPYDATA пока оставляет желать много лучшего.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.