Значки в Totalcmd.exe и внешних ICL-библиотеках
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Секреты и советы

#1: Значки в Totalcmd.exe и внешних ICL-библиотеках Author: AvadaLocation: Россия, Саратов PostPosted: Wed Feb 23, 2011 10:26
    —
Это новая редакция микросправочника, ставшего в 2011 году результатом обсуждения, начатого здесь. Тогда я впервые представил некую сводку по компоновке и поведению значков, предназначенных в первую очередь для объектов в файловых панелях и содержащихся в Totalcmd.exe или, соответственно, во внешних библиотеках со значками. (Позже стал поддерживаться ещё и показ значков из Проводника, но далее этот вариант подробно рассматриваться не будет.) Описания первых 23 значков можно было в ту пору найти, разумеется, и во многих других источниках, но там обычно содержалось много неточностей и анахронизмов, от которых я постарался избавиться.
Первая версия данного справочника соответствовала версии TC 7.56, далее серьёзная правка долго не проводилась, добавились лишь краткие упоминания о 64-битных версиях. В 2023 году описания обновлены и доработаны уже основательно, с учётом всех новаций более поздних версий. Сейчас комплект значков представлен в наборе для TC 10.51, сохраняющем актуальность и в TC 11.00.
Англоязычным эквивалентом этого материала является появившийся значительно позже раздел Wiki-справочника по Total Commander, организованный по другому принципу. (В целом пояснения там гораздо менее подробны, однако перечислены, например, системные аналоги используемых в TC обычных и оверлейных значков.)
Для иллюстрации последующего текста по этой ссылке доступна картинка, отображающая порядок следования значков в файле Totalcmd.exe. В Totalcmd64.exe первый значок в этом наборе выглядит немного иначе (см. пояснения далее.)
Не следует путать рассматриваемые здесь значки для файловых панелей и некоторых других элементов интерфейса TC со значками, предназначенными исключительно для панелей инструментов и главного меню и управляемыми совсем другими настройками (см., например, описание ключа DefaultLib в справочнике по ключам).
Далее указаны порядковые номера значков в ресурсах Totalcmd.exe и, соответственно, во внешних библиотеках. Нумерация значков идёт с единицы, как на картинке, хотя могут встретиться источники информации, где отсчёт ведётся с нуля.


1 • Значок в панели задач, в заголовках основного окна TC и большей части диалогов
2 • Обычная папка (и стандартный значок для любой папки, кроме скрытой/системной) — 32
3 • PIF-файл в очень старых версиях до 4.x (больше не используется) — 32
4 • Файл программы, не содержащий значков (и стандартный значок для любого EXE-файла) — 32
5 • Несвязанный файл (и стандартный значок для файла, не имеющего особого стандартного значка) — 32
6 • Папка общего доступа — 32
7 • Папка под курсором в дереве каталогов, а также открытая в меню цепочек навигации и др. — 32
8 • Файл архива в момент открытия — все размеры
9 • Любой файл, определяемый TC как архивный — все размеры
10 • Скрытый/системный файл любого типа (больше не используется) — 32
11 • Элемент [..] для перехода на уровень вверх — все размеры
12 • Скрытая/системная папка (больше не используется) — 32
13 • Стандартный значок для ярлыка (не для NTFS-ссылок!) — все размеры
14 • Обычная папка (и стандартный значок для любой папки, кроме скрытой/системной) — 16
15 • Несвязанный файл (и стандартный значок для файла, не имеющего особого стандартного значка) — 16
16 • Скрытая/системная папка (больше не используется) — 16
17 • Папка общего доступа — 16
18 • Папка под курсором в дереве каталогов, а также открытая в меню цепочек навигации и др. — 16
19 • Скрытый/системный файл любого типа (больше не используется) — 16
20 • PIF-файл в очень старых версиях до 4.x (больше не используется) — 16
21 • Файл программы, не содержащий значков (и стандартный значок для любого EXE-файла) — 16
22 • Кодированный текстовый файл, не ассоциированный с внешней программой — 32
23 • Кодированный текстовый файл, не ассоциированный с внешней программой — 16
24 • Значок в заголовке окна внутреннего инструмента сравнения по содержимому
25 • Значок в заголовке окна внутренней программы просмотра
26 • Значок в области уведомления (16-битный, специально для Windows 9x/ME/2000)
27 • Значок фильтрации (в окошке быстрого фильтра или в строке состояния окна синхронизации)
28 • Соединение с FTP-сервером: значок обычного FTP-подключения
29 • Соединение с FTP-сервером: значок безопасного FTP-подключения
30 • Соединение с FTP-сервером: значок обычного FTP-подключения, защищённого главным паролем
31 • Соединение с FTP-сервером: значок безопасного FTP-подключения, защищённого главным паролем
32 • Значок для файлов контрольных сумм со стандартными расширениями (SFV, MD5, SHA*, BLAKE3) — все размеры
33 • Значок в заголовке окна внутреннего инструмента синхронизации
34 • Значок для элементов ftp в виртуальной папке "Рабочий стол" (в т.ч. в дереве) и \ftp в меню цепочек навигации — все размеры
35 • Значок-индикатор, отображаемый в процессе фоновой операции с папкой — все размеры
36 • Значок-индикатор, отображаемый в процессе фоновой операции с файлом — все размеры
37 • Windows 7 и выше, окно Aero Peek: значок на кнопке "Пауза" для приостановки выполняемых операций
38 • Windows 7 и выше, окно Aero Peek: значок на кнопке "Старт" для возобновления выполняемых операций
39 • Значок для выбора поля плагина: числовое значение
40 • Значок для выбора поля плагина: строковое значение
41 • Значок для выбора поля плагина: дата
42 • Значок для выбора поля плагина: время
43 • Значок для выбора поля плагина: булево значение (1/0)
44 • Значок для выбора поля плагина: одно значение из фиксированного их набора
45 • Значок для выбора поля плагина: полнотекстовый поиск
46 • Оверлейный значок для открытой папки — 32
47 • Оверлейный значок для открытой папки — 16
48 • Оверлейный значок для папки общего доступа — 32
49 • Оверлейный значок для папки общего доступа — 16
50 • Оверлейный значок для скрытого/системного объекта — 32
51 • Оверлейный значок для скрытого/системного объекта — 16
52 • Значок для выбора поля плагина: сравнить как текст (при синхронизации)
53 • Оверлейный значок для ярлыка или NFTS-ссылки — 32
54 • Оверлейный значок для ярлыка или NFTS-ссылки — 16
55 • Оверлейный значок для облачных OneDrive-файлов без оффлайнового доступа — 32
56 • Оверлейный значок для облачных OneDrive-файлов без оффлайнового доступа — 16
57 • Значок для включения/выключения дополнительной панели в окне сравнения по содержимому
58 • Оверлейный значок для OneDrive-файлов с оффлайновым доступом — 32
59 • Оверлейный значок для OneDrive-файлов с оффлайновым доступом — 16

Отображение значков, относящихся к файловым панелям, в зависимости от размера:
16 — отображается (кроме режима эскизов), когда на странице настроек "Значки" для опции "Размер значков" задано значение 16x16;
32 — отображается в режиме эскизов или когда на странице настроек "Значки" для опции "Размер значков" задано значение 32x32;
Все размеры — в любом случае используется один и тот же значок, размер выбирается автоматически.
Примечания:
Если в настройках TC выбран размер значков в диапазоне 17-31, то в файловых панелях при наличии пары однотипных стандартных значков обычно используется масштабированный значок 32x32.
При отображении значков папок и файлов вместо эскизов в соответствующем режиме представления обычно используется размер 48x48 (см. ключ ThumbIconSize), но при малом масштабе эскизов он уменьшается. Тот же размер, что в файловой панели, берётся и для значков, отображаемых вместо эскизов в диалоге подтверждения перезаписи.
Часть значков содержит также размеры, отличные от 16 и 32, но к файловым панелям они относятся редко. Например, первый по порядку значок поддерживает размеры 16, 24, 32, 40, 48 и 256, а в некоторых других значках есть в т.ч. поддержка размеров 24, 48 и/или 64.

Источники значков:
По умолчанию некоторая часть значков TC берётся из системного Проводника. Альтернативным (а нередко и единственным) источником с тандартных значков является файл Totalcmd.exe или Totalcmd64.exe. Если вы предпочитаете пользовательский набор значков, их следует включить во внешнюю ICL- или DLL-библиотеку, указав её имя как значение ключа IconLib в секции [Configuration] файла wincmd.ini. Обязательным условием обращения к внешней библиотеке является отключение использования файлов/папок из Проводника, причём это следут делать не правкой INI-файла вручную, а на странице настроек "Значки". Для определённых объектов из EXE-файла TC или внешней библиотеки берутся оверлейные значки (в т.ч и когда источником основных значков является Проводник).
В качестве исходников для самостоятельного изменения выложены образцы ICL-библиотек с актуальным набор значков (TC 10,51 и выше) из Totalcmd.exe и Totalcmd64.exe — разница между ними только в первом значке, см. далее.
Необходимо учитывать, что в современных ОС отсутствует поддержка 16-битных библиотек, поэтому старые внешние библиотеки с ограниченным числом значков следует как минимум преобразовать в 32-битные (о методике см., например, здесь).
Для обработки значков из внешней библиотеки важен только порядок их фактического следования, а не имена. При создании библиотеки не следует пропускать никакие значки, даже фактически ненужные, поскольку следующие значки окажутся не на своих местах и их привязка к элементам интерфейса нарушится. 32-битные библиотеки с непрерывной, но неполной последовательностью значков (например, только с первыми 26 значкам, как для очень старых версий TC) сохранят работоспособность, но все отсутствующие значки будут браться, разумеется, уже из EXE-файла.
Для редактирования готовых и создания собственных библиотек значков существует множество внешних средств (я использую, например, ArtIcons Pro), можно также порекомендовать WLX-плагин ICLView и WCX-плагин ICLRead.
Даже при наличии во внешней библиотеке полного комплекта значков из неё никогда не берутся значки 24-27, 33 и 57: их программа в любом случае загружает непосредственно из файла Totalcmd.exe или Totalcmd64.exe, в зависимости от битности текущей копии TC.

Условия отображения значков:
Значки 1 (MAINICON), 24-31, 33, 37-45, 52 и 57 к файловым панелям TC отношения не имеют, а значки 35-36 отображаются там только временно (например, при фоновой загрузке полей плагинов или эскизов или при подсчёте содержимого подкаталогов). Значки 3, 10, 16 и 19-20 (а в ОС на базе Windows NT и 26) в настоящее время уже не используются, хотя по-прежнему должны оставаться во внешней библиотеке на своих местах.
Значки 2/14 и 7/18 для папок могут использоваться не только в файловых панелях, но и в других областях интерфейса TC (все — в цепочках навигации, 14 и 18 — в некоторых диалогах, истории каталогов и др.). Кроме того, стандартные значки 14 (для папок) и 15 (для файлов) могут отображаться в диалоге копирования/перемещения, если там разрешён подсчёт количества предназначенных для операции объектов.
Если вы хотите изменить только основной значок программы, достаточно отключить использование значков для файлов/папок из Проводника и указать значением ключа IconLib ICO-файл с этим значком. В этом случае все прочие значки будут браться из EXE-файла.
В исполняемых файлах TC разной битности первый значок набора несколько отличается: в Totalcmd64.exe к изображению дискетки на этих значках всех размеров добавлена надпись 64.
Следует также знать, что значок 1 (MAINICON) из внешнего файла отображается не везде. Вы увидите его в заголовке окна TC, в кнопке в панели задач, в системной области уведомлений, а также в заголовках окон части встроенных инструментов TC (групповое переименование, поиск, настройка меню "Запуск" или избранных каталогов, выбор команды, окна фоновых операций и др.). В заголовках другой части окон (предпросмотр печати файлового списка, соединение с FTP-сервером, внутренние ассоциации, определение цветовых групп, настройки WDX-, WFX- и WLX-плагинов и др.) внешний значок 1 игнорируется, используется соответствующий встроенный значок.
В заголовках окна встроенных инструментов просмотра, сравнения и синхронизации отображаются собственные значки (25, 24 и 33 соответственно). Здесь есть довольно странное исключение, которое автор TC так и не смог устранить: если в 32-битном TC используется внешняя библиотека значков, то в заголовке окна синхронизации собственный значок отображается только при отдельном запуске этого инструмента (/S=S), а при обычном запуске из TC отображается значок 1 из внешней библиотеки.

Область применения некоторых значков для файловых панелей:
(В зависимости от того, какой вариант показа значков выбран на странице настроек "Значки")
Выбор вместо "Все ассоциированные + EXE/LNK" опции "Только стандартные" или "Все ассоциированные" означает, что:
• папки в основном сохраняют свои значки (для обычных — 2/14, для скрытых/системных — они же с добавлением оверлейного значка 50/51 и т.д.; скрытие специальных значков из файла Desktop.ini, к нашей теме напрямую не относится);
• у ярлыка вместо значка объекта ссылки отображается (только в этом случае!) не комбинация исходного значка с оверлейным (53/54), а целостный значок 13, NTFS-ссылки на папки по-прежнему отображаются только с оверлейными значками;
• значки 4/21 применяются ко всем EXE- и PIF-файлам без исключения;
• значки 5/15 будут обозначать большинство остальных файлов (про исключения см. далее).
Примечания:
При включённой опции "Только ассоциированные" файлы, содержащие значки, отображаются либо со значками ассоциированных приложений (если такие ассоциации есть), либо со стандартными значками TC.
При включённой опции "Если EXE/LNK не на дискетах" и/или "Если EXE/LNK не в сети" некоторые значки меняют свой вид по указанным правилам, но только на дискетах и/или в сети.
Внутри архивов опция "Все ассоциированные + EXE/LNK" игнорируется, обработка ведётся по правилам опции "Все ассоциированные".

Независимо от состояния указанных опций отображаются:
• значки 4/21 для COM- и BAT-файлов (для CMD-файлов используется значок системной ассоциации, а при её отключении — значок 5/15);
• значки 6/17 для папок общего доступа (в старых ОС, если отключена опция "Показывать оверлейные значки", а в Windows 7 и выше, если источник значков — EXE-файл или внешняя библиотека, в противном случае TC использует свой оверлейный значок);
• оверлейные значки 50/51 для скрытых/системных файлов ЛЮБОГО типа (включая ассоциированные, архивные и кодированные!) вместо прежних значков 12/16 и 10/19, которые больше не используются;
• значки 7/18 для папки под курсором в дереве, открытой в файловой панели (они используются и других областях интерфейса, например, в цепочках навигации, хотя при источнике значков, отличном от Проводника, зелёная оверлейная стрелка 46/47 из EXE-файла может иногда комбинироваться с целостным значком 7/18);
• значки 8/9 для открывающихся/закрытых архивов (однако файлы, открываемые с помощью WCX-плагинов, можно показывать и со своими собственными значками — см. описание секции [PackerPlugins] в справке TC), а показ индивидуального значка для архивов определённого типа можно настроить через внутренние ассоциации);
• значок 11 для элемента [..], обозначающего переход в родительскую папку;
• значки 22/23 для кодированных файлов, не ассоциированных с внешней программой (например, с WinRAR), в противном случае отображается значок этой программы;
• значок 32 для файлов контрольных сумм со стандартными расширеняими SFV, MD5, SHA* и BLAKE3 (если подобные файлы открываются с помощью WCX-плагинов, приоритет имеет значок 9, однако можно показывать эти файлы и со значком TC — см. описание секции [PackerPlugins] в справке TC);
• значок 34 для элемента ftp в дереве;
• значки 35/36 для индикации фоновых операций;
• значки 55/56 и 58/59 для разных видов OneDrive-файлов (только при IconOverlays=1, показ регулируется ключом IconOverlaysOneDrive).


Last edited by Avada on Fri Sep 15, 2023 19:14; edited 28 times in total

#2:  Author: iglezz PostPosted: Wed Feb 23, 2011 12:59
    —
Quote:
• значки 4/21 применяются ко всем EXE- и PIF-файлам без исключения;

К BAT-файлам тоже...

#3:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Feb 23, 2011 13:28
    —
iglezz
Не совсем так. Смотрим контекст, из которого взята цитата. К BAT-файлам (равно как и к COM) эти значки применяются при любом состоянии опции, поскольку собственных значков эти файлы не содержат и ни с чем не ассоциированы. Тут никакой зависимой от настроек специфики нет, потому и не оговаривалось. Но раз возник вопрос, дополнительную строку добавил.

#4:  Author: CaptainFlintLocation: Москва PostPosted: Thu Feb 24, 2011 00:52
    —
Уточнение для 6/16: только если не используются оверлейные значки (иначе значок руки берётся из системного оверлея).

#5:  Author: Serge Yolkin PostPosted: Thu Feb 24, 2011 01:09
    —
Avada
CaptainFlint
6/17, а не 16... (с пол-года назад сам разбирался, методом тыка, - до сих пор на память...)

#6:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Feb 24, 2011 10:50
    —
CaptainFlint
Serge Yolkin
Спасибо, учтено.

#7:  Author: ask-rusLocation: Russian Federation PostPosted: Wed Mar 16, 2011 16:22
    —
Подобный микросправочник по WCMICONS.DLL мне бы сейчас здорово пригодился.

#8:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Mar 20, 2011 13:30
    —
ask-rus
Во-первых, в ближайшее время я этим по-любому заниматься не буду. Во-вторых, там ничего "секретного" нет, каждый в принципе может для себя разобраться, что чему соответствует (с поправкой на разницу нумерации значков в Wcmicons.inc и во внешних программах для просмотра библиотек). В третьих, с таким количеством значков это уже не очень-то "микро". Короче, имеешь идеи — пиши в личку, а там видно будет.

#9:  Author: mrmerak PostPosted: Sun Mar 20, 2011 19:30
    —
Avada
надо б инфу на tckb.ru закинуть

#10:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Mar 20, 2011 21:17
    —
Моя предложить завернуть в *.CHM как расширяемое (+WCMICONS.DLL) дополнение к Справке, не в ближайшее, но в любое другое.
Mr.Merak wrote:
надо б инфу на tckb.ru закинуть

[off]
Там бы версию TC в Новостях обновить для начала.
[/off]

#11:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Mar 20, 2011 21:25
    —
ask-rus
Оффтоп — в личку! Здесь, пожалуйста, только по основной теме.

Mr.Merak wrote:
надо б инфу на tckb.ru закинуть

Да, согласен. Но я этого раньше никогда не делал, а осваивать сейчас некогда, есть гораздо более приоритетные дела.

#12:  Author: mrmerak PostPosted: Thu Jun 30, 2011 12:25
    —
Avada
все таки статья крутая и имхо не должна просто тут пылиться.
мб в http://flint-inc.ru/tchelp/ отдельной веткой добавить или тут закрепить?

#13:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jun 30, 2011 13:39
    —
Mr.Merak
Добавить отдельной веткой — это вряд ли (в конце концов, это статья, посвящённая локальной проблеме, а не универсальный справочник, полезный всем и всегда). А закреплять — на этом подфоруме после модераторской чистки осталось не так уж много тем, чтобы что-то потерять и не найти. В общем, предложение принято к сведению, но ничего пока не обещаю.

#14:  Author: mrmerak PostPosted: Thu Jun 30, 2011 14:45
    —
Avada
ты ж вроде когда-то вылаживал обновленный icl? может его сюда тоже стоит добавить?

#15:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jun 30, 2011 20:34
    —
Mr.Merak
Добавлено в "Источники значков".



Total Commander -> Секреты и советы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group