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: Sat Sep 27, 2025 20:12    Post subject: Reply with quote

Loopback
Я недавно запрашивал фичу, чтобы у подсказки можно было менять текст без вызова другой подсказки, но если полезете в код, то хотелось бы задавать максимальную ширину подсказки. Сейчас это динамическая величина, зависящая от длины строки. Но если строка слишком длинная, то и подсказка может получиться на весь экран, хочется как-то ограничивать этот размер.

Сейчас столкнулся с такой проблемой. Назначил вызов функции на Ctrl+1..Ctrl+5, но в окне листера клавиши не перехватываются. То есть если у меня открыто окно плагина TCMediaInfo, то смена режимов не срабатывает, хотя я поставил Return -1 в ShowPipeEx.
 Hidden text

Конечно, можно сменить на Alt или на Ctrl+Alt, но мне хотелось бы именно Ctrl использовать. Пока сменил на Alt, чтобы не было проблем, полный код чуть ниже.

A55555
Я вчера не сразу понял, какая у вас проблема с именами. Да, шаблоны не работают, если в них использовать кириллицу (в лучшем случае теряется секция, а в худшем шаблон не загружается). Но у вас другая проблема. Сверху попадает подсказка от проводника или самого ТС (поэтому поле дублируется), так работает подсказка на Autorun - оригинальная подсказка сливается с дополнительной подсказкой, с этим ничего не поделаешь. Дополнительная подсказка только добавляет новые поля, но не заменяет существующие.

С главами действительно есть баг, который за пять лет так и не был исправлен.
Я взял стандартный шаблон, который идет с GUI-версией библиотеки:
 Example.csv

Но даже в нем Chapters не работает. Такой вот неприятный сюрприз.

Все-равно оставил эту строку в hint.txt. Последняя версия шаблона:
 hint.txt

Еще два шаблона, которые понадобятся для новой подсказки:
 size.txt

 duration.txt

Скинул еще раз, чтобы не приходилось отматывать назад.

Обновленный код подсказки.
 Hidden text

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

Переменные.

gHintClipb - копировать в буфер всю подсказку при отображении в страничном режиме
gHintLines - число строк подсказки, больше 60 быть не может
gHintWait - задержка для всех секций перед отображением
gHintShift - шаблон для смены "на лету", только для левой секции
gHintCaps - если false, подсказка будет отображаться без CapsLock или Ctrl
gHintLayout - размер каждой секции в процентах
gHintContent - шаблон для каждой секции; если пустой "", в секцию ничего не попадает, кроме самой подсказки ТС или проводника; если "Inform" - стандартный отчет MediaInfo; если имя файла, то шаблон из файла (файлы должны находиться в каталоге MediaInfo.dll, существование файла не проверяется, в случае отсутствия сообщений об ошибке не будет, отобразится сырой результат отчета MediaInfo).
gHintSleep - задержка для каждой секции.

Пара примеров.
Code:
gHintCaps     =   false       
gHintLayout   =   List(15, 70, 15)       
gHintContent  =   List("Inform", "", "duration.txt")
gHintSleep    =   List(500, 0, 0)

Подсказка будет вызываться всегда (CapsLock отключен). Левая секция - 15%, Центр - 70%, Правая секция - 15%. В левой секции стандартный отчет MediaInfo с задержкой 500 млс, в центре ничего не выводится, в правой секции шаблон duration.txt.
Code:
gHintCaps     =   true
gHintLayout   =   List(10, 80, 10)       
gHintContent  =   List("size.txt", "hint.txt", "Inform")       
gHintSleep    =   List(0, 0, 0)

Подсказка вызывается дополнительно (CapsLock включен). Левая секция - 10%, Центр - 80%, Правая секция - 10%. В левой секции шаблон size.txt, в центре шаблон hint.txt, в правой секции стандартный отчет MediaInfo. Отдельных задержек перед вызовом нет.

Дополнительно шаблон в левой секции может меняться "на лету" с тем, что указан в gHintShift. Комбинация для смены Alt+5.

Кроме Alt+5 действуют еще 4 комбинации: Alt+1..Alt+4. Каждая из этих комбинаций выводит одну страницу последней подсказки и опционально копирует ее в буфер. Такое применение удобно на очень больших подсказках, которые обрезаются на 60-и строках, оставляя одну страницу просмотра. Нажав Alt+2 можно переместиться на вторую страницу и так далее. Всего четыре страницы.

Получилась более универсальная подсказка, чем прежняя, но делал все буквально на лету, т.ч. могут быть какие-то ошибки или недочеты. Только дальнейшее использование покажет.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group