Кнопка-меню-список с шаблонами поиска?

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

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

kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Кнопка-меню-список с шаблонами поиска?

Сообщение kadvlad »

Хотелось бы сделать кнопку с выпадающим списком имеющихся шаблонов поиска (CTRL-F12) для быстрого применения фильтра отображения файлов в текущей директории.
Можно ли задать для каждого имеющегося шаблона отдельную команду (возможно, через пользовательские команды), чтобы поместить их в этот список?

Имеется стандартная команда

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

314="Активная: задать фильтр" = cm_SrcUserDef
Имеется пользовательский шаблон

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

[Searches]
..
Sample_SearchFor=*.ext
Как и где указать параметры − требуемый тип (расширение) файла для выделения/отображения?
Или ход мысли в принципе ошибочный?

Помогите разобраться, пожалуйста.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

em_блабла: SELECTFILES <*.ext *.ex2>
TCMC.exe EMem_блабла CM2023 CM524
Последний раз редактировалось Flasher Ср апр 04, 2012 18:40, всего редактировалось 1 раз.
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

Flasher,
спасибо.

Про ТСМС думал, но не знал, как указывать <*.ext *.ex2>.
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

Flasher,
уточню вопрос.

Хотелось бы не просто автоматизацию выделения заданных типов файлов, а именно применение фильтра отображения файлов в текущей панели − именно чтобы были видны только заданные типы.

Для этого используется команда cm_SrcUserDef, но вот передать ей параметры не получается; каждый раз открывается диалоговое окно выбора шаблона.
Пробовал по аналогии с командами selectfiles и loadsearch, которые воспринимают параметры:

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

[em_txt]
cmd=cm_SrcUserDef
param=>Text
или

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

[em_txt]
cmd=cm_SrcUserDef
param=%A
где >Text - имя сохранённого шаблона поиска
%A - подстановка для Text в пользовательской команде:

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

em_txt >Text
Видимо, это невозможно (?)
Появилась идея реализовать задачу на vbs, эмулируя нажатие клавиш, но думаю, это слишком грубое решение )

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

Dim TCS
Set TCS = CreateObject("TCScript.Helper")
TCS.SendCommand(314)
TCS.SendKeystroke (">Text")
TCS.SendKeystroke ("{Enter}")
Set TCS=Nothing
Wscript.Quit
где ">Text" − название сохранённого типа шаблона поиска (CTRL-F12).

Что скажете?
Последний раз редактировалось kadvlad Вт апр 03, 2012 11:26, всего редактировалось 1 раз.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

kadvlad
Что-то подобное предлагалось здесь.
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

sa,
спасибо за альтернативу.

Моё решение на vbs мне показалось чуть проще, нет?
По крайней мере, манипуляций с раскладками нет.
В Вашем варианте при англ.раскладке у меня всё равно упорно выдаёт "Несоответствие типа: Sendkeystroke", а желания переназначать клавиши раскладок нет.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

kadvlad
Если фильтр именованный, то всё проще: вместо кнопки вызова скрипта достаточно кнопки с командой cd >Имя фильтра
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

sa
Вот!!!

Я знал, что должно быть простое и элегантное решение )
Спасибо!
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

kadvlad писал(а):упорно выдаёт "Несоответствие типа: Sendkeystroke"
Любопытно. А как выглядит строка параметров?
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

Так же, как в указанной кнопке к скрипту.
У меня клавиатуры переключаются по CTRL-SHIFT.

надеюсь, Punto Switcher не помеха.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

kadvlad писал(а):У меня клавиатуры переключаются по CTRL-SHIFT.
Это не важно.
kadvlad писал(а):надеюсь, Punto Switcher не помеха
Скорее всего, дело именно в этой программе. Спасибо.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

kadvlad писал(а):Хотелось бы не просто автоматизацию выделения заданных типов файлов, а именно чтобы были видны только заданные типы.
А моя команда что-то иное делает?
kadvlad писал(а):Я знал, что должно быть простое и элегантное решение )
Ну, да. Об этом уже не раз, не два, не три писалось.
Последний раз редактировалось Flasher Вт апр 03, 2012 14:42, всего редактировалось 1 раз.
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

Flasher писал(а):А моя команда что-то иное делает?
по Вашей схеме получается так:

SELECTFILES - выделили заданный тип файлов
cm_ShowOnlySelected - временно скрыли остальные (невыделенные) типы
cm_ShrinkSelection - сняли выделение

Т.е. пока всё правильно, но если обновить панель (перейти в др.каталог), выделение снимется и вернётся дефолтное cm_SrcAllFiles.
Я же хотел постоянное отображение в текущей панели только заданных типов согласно шаблонам поиска (CTRL-F12), независимо от переходов по каталогам.

В любом случае, спасибо за содействие.
Подумаю, где могу применить SELECTFILES )
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

kadvlad писал(а):Я же хотел постоянное отображение
Ясно. См. дописку.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

kadvlad писал(а):простое и элегантное решение
Только вот почти не документированное, к сожалению. См. здесь и далее.
Ответить