Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Autorun 
Author Message
Orion9



PostPosted: Thu Feb 12, 2026 14:02    Post subject: Reply with quote

Внес некоторые изменения в модуль MediaInfo.aucfg.

Раньше была возможность разделить панель на три области, чтобы отображать в каждой области свою подсказку. Теперь при удержании Shift в подсказке также отображаются данные из плагинов, тем самым общее количество подсказок возросло до шести!

Если добавить сюда переключение полей (функция реализована в модуле как SetHintFields, вызывается по Alt+F12), количество подсказок можно увеличивать до беспредела Smile

Однако пока Alt+F12 ограничивается только переключением на ExifHint и JoinHint, при этом JoinHint больше не актульна, хотя может быть использована в качестве примера вывода данных в окно подсказки.

Алгоритм вывода данных из плагинов ранее был реализован в функции JoinHint. Я перенес его в модуль MediaInfo.aucfg и добавил небольшие изменения.

Как это работает. В подсказку выводятся все непустые поля из заранее указанных плагинов в файле WdxHint.cfg. Пример файла:
Code:
File.wdx;UnicodeTest.wdx;FileX.wdx
Permissions.wdx;NTLinks.wdx;NTFSFileStreams.wdx
anytag.wdx
Script.wdx;WinScriptsAdv.wdx

Соответственно, первая строка в файле выводит в первую область панели данные из плагинов File.wdx, UnicodeTest.wdx и FileX.wdx. Вторая строка выводит во вторую область панели, а третья в третью. Комбинация плагинов в строке может быть любой. Путь к файлу WdxHint.cfg указывается в глобальной переменной наряду с другими параметрами подсказки MediaInfo:
Code:
Global gHintPipe     =   "", _
       gHintClipb    =   true, _
       gHintLines    =   60, _
       gHintWait     =   0, _     
       gHintShift    =   "duration.txt", _
       gHintCaps     =   true
       
Global gHintWdx      =   0, _       
       gHintWdxList  =   List(), _
       gHintWdxCfg   =   COMMANDER_PATH & "\Ini\WdxHint.cfg"
       
Global gHintLayout   =   List(10, 75, 15), _
       gHintContent  =   List("size.txt", "Inform", "hint.txt"), _
       gHintSleep    =   List(0, 0, 0)

Переменные должны быть объявлены в модуле autorun.cfg, желательно сразу после инструкции Pragma AutorunPluginFields, чтобы избежать ошибки инициализации при запуске ТС (об этом подробнее по первой ссылке).

gHintPipe, gHintWdx и gHintWdxList используются для внутренних целей, менять их значения не нужно. Остальных переменные описавались ранее, как и примеры их использования:
 Hidden text

В подсказке используются шаблоны MediaInfo: текстовые файлы с собственной разметкой и синтаксисом. Внося изменения в эти файлы, можно подстраивать под себя вывод из MediaInfo.dll. Сейчас используются три шаблона hint.txt, size.txt и duration.txt, можно создать другие или полностью передлать эти.
 hint.txt

 size.txt

 duration.txt

Шаблоны должны находиться в каталоге библиотеки.

Также в файле autorun.cfg самой первой строкой должны быть прописаны поля подсказки в инструкции Pragma AutorunPluginFields:
Code:
Pragma AutorunPluginFields "C1:::MediaHint" "C2:::MediaHint" "C3:::MediaHint" "C4:::MediaHint" "C5:::MediaHint" "C6:::MediaHint" "C7:::MediaHint" "C8:::MediaHint" "C9:::MediaHint" "C10:::MediaHint" "C11:::MediaHint" "C12:::MediaHint" "C13:::MediaHint" "C14:::MediaHint" "C15:::MediaHint" "C16:::MediaHint" "C17:::MediaHint" "C18:::MediaHint" "C19:::MediaHint" "C20:::MediaHint" "C21:::MediaHint" "C22:::MediaHint" "C23:::MediaHint" "C24:::MediaHint" "C25:::MediaHint" "C26:::MediaHint" "C27:::MediaHint" "C28:::MediaHint" "C29:::MediaHint" "C30:::MediaHint" "C31:::MediaHint" "C32:::MediaHint" "C33:::MediaHint" "C34:::MediaHint" "C35:::MediaHint" "C36:::MediaHint" "C37:::MediaHint" "C38:::MediaHint" "C39:::MediaHint" "C40:::MediaHint" "C41:::MediaHint" "C42:::MediaHint" "C43:::MediaHint" "C44:::MediaHint" "C45:::MediaHint" "C46:::MediaHint" "C47:::MediaHint" "C48:::MediaHint" "C49:::MediaHint" "C50:::MediaHint" "C51:::MediaHint" "C52:::MediaHint" "C53:::MediaHint" "C55:::MediaHint" "C55:::MediaHint" "C56:::MediaHint" "C57:::MediaHint" "C58:::MediaHint" "C59:::MediaHint" "C60:::MediaHint"

Указанные 60 полей должны быть предварительно добавлены в секцию HintsCustomField основной конфигурации ТС, т.е. в секции должны быть два щаблона *.* по 30 полей каждый, которые должны ее замыкать.

Возможные сценарии.

1) Если в секции нет других расширений. Достаточно просто применить готовый вариант:
 Hidden text

2) Если в секции есть другие шаблоны и маски. Нужно добавить по последнему номеру, например:
 Hidden text

После добавления полей в секцию, нужно зайти в диалог Настройки -> Содержимое панелей -> Пользовательские и поставить галочку "Объединять все подсказки, подходящие по типу файлов".

Всё. Предварительная часть установки завершена. Осталось подключить модуль.

Модуль подключается стандартно, директивой Pragma Include, в основной конфигурации Autorun:
Code:
Pragma Include %COMMANDER_PATH%\Ini\Scripts\MediaInfo.aucfg


После перезапуска ТС альтернативная подсказка из модуля должна отображаться на панелях при наведении курсора мыши на нужный файл с удержанием CTRL или включеном CapsLock. Однако CTRL работает только в 32-битной версии ТС из-за некоторых ограничений.

Окно панели поделится на 3 части: 10% справа, 75% центр, 15% слева. В каждой области отображается своя подсказка из MediaInfo.dll. Удержание Shift переключает отображение на плагины. Поскольку Shift не работает в TCx64, как и CTRL, переключением доступно только через Win+CapsLock. Данная комбинация работает и в TCx32.

Кроме подсказки, в модуле реализована кнопка для подсчета времени воспроизведения у выделенных файлов и каталогов. Код кнопки 71000. Подробнее о функционале здесь

Сам по себе модуль автономный, если не считать манипуляций описанных выше, связанных прежде всего с установкой подсказки в качестве альтернативной. В заголовке модуля требуется только указать корректные пути к библиотеке MediaHint.dll и утилите ExiTool:

 MediaInfo.aucfg
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group